黑马程序员技术交流社区

标题: 应用:首字母大写和统计单词个数-付详细注释 [打印本页]

作者: 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