//这份代码是老师的笔记,求大神讲解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;
} |
|