A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

//这份代码是老师的笔记,求大神讲解for循环里的if(){}else if(){}是什么意思?思路说一下~谢谢~
#include <stdio.h>
#include <string.h>
int main(int argc, const char * argv[]) {

    //黑马题:思考&实现:使用gets()函数从键盘输入一个字符串,判断其中输入的连续单词有多少个?(单词之间用空格做分隔),并将单词首字母大写输出
   
    //定义字符数组接收用户输入的字符串
    char str[100];
   
    //定义变量统计单词个数
    int count = 0;
    //定义变量标记是这是一个单词
    int words = 0;//wors == 1表示不是单词
   
    //提示用户输入一个字符串,字符串中单词之间要包含空格:
    printf("请输出一个字符串,字符串中单词之间要包含空格:\n");
   
    //用gets()函数接受用户输入字符串,并保存到数组中
    gets(str);
   
    //不会了:通过循环调出字符串中的每个字符,当字符!='\0'时,判断是否!=' ',是则让循环变量+1,判断下一个字符,如果字符!=' '则什么也不干,继续判断下一个,否则......
   
    //循环取出每个字符,遇到\0结束或i< strlen(str)
    for (int i = 0; str!='\0'; i++) {
        //判断
        //当前循环字符是空格,下次循环一定是一个单词
        if (str == ' ') {
            //把是否是单词标记改一下
            words = 0;//这是一个标记,words = 0表示是一个单词
        }else if(words == 0){
        
            count++;
            str = str-32;//此时str是空格之后的字符
            words = 1;//让单词标志变为不是单词
        }
        
    }
    puts(str);
    printf("单词个数为:%d\n",count);
   

   

    return 0;
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马