前言:
此篇面向C语言初学者,针对数组、循环和判断方面的练习。
正文:
方法一:
#include<stdio.h>
int main() {
void giao();
giao();
return 0;
}
//输入一行字符,统计其中有多少个单词,单词之间用空格分隔开(标准的方法)
void giao(){
char string[81];
int i,num=0,word=0;
char c;
gets(string); //输入一个字符串给字符数组string
for(i=0;(c=string[i])!='\0';i++) //只要字符不是'\0'就继续执行循环
if(c==' ')word=0; //如果是空格字符,使word置0
else if(word==0){ //如果不是空格字符且word原值为0
word=1; //使word置1
num++; //num累加1,表示增加一个单词
}
printf("There are %d words in this line.\n",num);//输出单词数
}
下面是自己的方法供大家参考,只限肯定句。
方法二:
#include<stdio.h>
int main() {
void giao();
giao();
return 0;
}
//输入一行字符,统计其中有多少个单词,单词之间用空格分隔开(自己的方法)
void giao() {
char c[100];
char a;
int i=0,j,k,q=0;
while(a!='.') {//注意这个条件判断,结尾必须是句号(相比方法一有所区别)
scanf("%c",&a);
c[i]=a;
if(a==' '){//通过空格判断单词
q++;
}
i++;
}
printf("There are %d words in this line.",q+1);//注意q+1
}
注意:
这里把处理问题的代码写成了giao( )函数的形式。
总结:
方法一运行结果:
方法二运行结果: