这是我自己敲的代码
int main(int argc, const char * argv[]) {
//定义变量
char str[100];
int isWord = 0;
int count = 0; //统计单词个数
printf("请输入一个字符串");
gets(str);
for (int i=0; str != '\0'; i++) {
if (isWord == 0) {
str = str-32; //变成大写
count++;
isWord = 1;
} else if (str == ' ' ){
isWord = 0;
}
}
printf("字符串%s,单词个数:%d\n",str,count);
return 0;
}
当键盘输入 werwesdf sdfjksldjf 时,打印的结果如下
请输入一个字符串warning: this program uses gets(), which is unsafe.
werwesdf sdfjksldjf
字符串Werwesdf ,单词个数:2
Program ended with exit code: 0
下面是老师的代码
int main(int argc, const char * argv[]) {
//定义变量
char str[100];
int isWord = 0;
int count = 0; //统计单词的个数
//提示用户输入字符串
printf("请输入一个字符串:\n");
//接收字符串,并保存到数组中
gets(str);
//循环取出每一个字符 遇到\0 循环结束
for (int i=0; str!='\0'; i++) {
//判断
if (str==' ') {
//把是否是单词标记改一下
isWord = 0; //这是一个标记,words=0表示是一个单词
}else if(isWord == 0){
// 当前循环 字符是空格 下次循环一定是一个单词
count++;
str = str-32; //减去32就大些了
isWord = 1; // 让单词标志变为不是单词
}
//werwesdf sdfjksldjf
}
printf("单词个数:%d,字符串:%s\n",count,str);
//puts(str);
return 0;
}
得出的结果是
请输入一个字符串:
warning: this program uses gets(), which is unsafe.
werwesdf sdfjksldjf
单词个数:2,字符串:Werwesdf Sdfjksldjf
Program ended with exit code: 0
我输入的后半段哪里去了???暂时无法理解
|
|