哪里有错,我想输入一行字符用函数编程统计其中有多少单词。假设单词之间以空格分开
你的代码呢?统计单词的话,最好用两个字符来判断,当前一个字符是空格,并且当前字符是字母的时候,才开始统计个数
参考如下代码:
运行结果(输入3行字符测试):
代码
#include <stdio.h>
//判断字符是否是字母
int iszm(char c)
{
if((c>='a' && c<='z') || (c>='A' && c<='Z'))
return 1;
else
return 0;
}
int fun(char* s)
{
int i=0;
int cnt = 0;
while(s[i]==' ') i++; //忽略字符前面的空格
while(s[i])
{
if (iszm(s[i])) //当前为字母
{
if(i==0 ) //
cnt++;
else
{
if(s[i-1]==' ')
cnt++;
}
}
i++;
}
return cnt;
}
int main()
{
char buf[100];
gets(buf);
printf("%d:%s\n",fun(buf),buf);
gets(buf);
printf("%d:%s\n",fun(buf),buf);
gets(buf);
printf("%d:%s\n",fun(buf),buf);
return 0;
}
#include<stdio.h>
#define M 1000
int main(void)
{
char a[M];
int n = 0, i,j;
gets(a);
for ( n = 0, i = 0, j = n + 1; a[i] != '\0'; i++, j++)//此n计数,清零
if ((a[i] != ' ' && a[j] == ' ')||(a[i] != ' ' && a[j] == '\0'))
n++;
//原理:两个(相邻)字符如果前一个字符不为空字符 后一个为空字符或者为'\0' 单词数+1
printf("%d\n", n);
return 0;
}