黑马程序员技术交流社区
标题: 应用:首字母大写和统计单词个数-付详细注释 [打印本页]
作者: 382780396 时间: 2015-7-24 23:33
标题: 应用:首字母大写和统计单词个数-付详细注释
一个今天刚联系的应用,标注了详细的注释,感兴趣的朋友请参考下:
我的思路和代码如下:
#include <stdio.h>
#include <string.h>
int main()
{
/*
应用:单词首字母大写&统计单词个数
思考&实现1: 使用gets()函数从键盘输入一个字符串,判断输入的有多少个单 词?
Abc sadfasdf asdfasdfasdf asdfasdf
提示:
*/
//定义一个数组,定义一个计算单词个数的变量,定义一个
char arr[100];int cound= 0;int word = 0;
//提示用户输入
printf("请输入一若干个单词\n");
//运用gets函数完成用户输入
gets(arr);
//使用循环完成到单词结尾,关键点,单词最后结尾都是\0结束,我们以这个为终结点
for (int i = 0;arr!='\0';i++){//让他一致循环到\0,所以在一直执行中结果都不等于\0
if (arr==' '){//让他判断arr到这里是不是空格,如果是空格,word=0执行 ,让下一次arr[i+1]时,arr[i+1]减去32,得到它的大写字母,
word = 0;
}else if(word == 0){
arr-=32;//关键点,每个小些字符减去32都得到它的大写字母,对应ascll码表
cound++;//计算他的次数
word = 1;//让他跳过,在这里是让他跳过其他字母,只有,判断空格过后,和没有空格了,才执行word=0
}
}
//printf输出结果
puts(arr);
printf("\n运行的次数是%d",cound);
return 0;
}
/*
结论:
1)使用for循环遍历,arr!=\0,如果arr=\0时,结果为假,就跳出循环,起到一个对输入的单词的遍历作用
2)我们可以把{if...else if...}这个语句看为一个整体,当arr==' '遍历到有空格时,word=0这个整体结束,循环下一次,在对下一个arr[i+1]进行遍历,当arr不等于' '时,说明这是一个字母的头字母,我们执行word这句,让小写字母转换大写字母。
3)最后进行打印输出结果
*/
____________________________________________________华__丽__的__分__割__线_______________________________________________________________
信息量不算很大,希望大家很快能看懂
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |