一个今天刚联系的应用,标注了详细的注释,感兴趣的朋友请参考下:
我的思路和代码如下:
#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)最后进行打印输出结果
*/
____________________________________________________华__丽__的__分__割__线_______________________________________________________________
信息量不算很大,希望大家很快能看懂
|