以下是引用missu_1314在2012-2-7 22:01:09的发言:
#include
#include
main()
{
char a[300];
int i;
printf("please input:\n");
scanf("%s", a);
for (i=0; ; i++)
{
if ( a == '\0' )
break;
}
printf("the numbers of string is: %d", i);
getch();
}
试试这个!
问题找着了,是数组a没定义,应该是word[i]眼神不好,没看清楚,不过我那个算法有点问题,统计出来数字不准确。之前写个这个小程序,我觉得算法比较好,所以就偶尔就写写。你这个算法貌似也有问题。
#include "stdio.h"
int main(void)
{
char ch;
int i=0;
//i=0,表示在单词外面,i=1表示在单词里面。
int words=0;
while ((ch = getchar())!='\n')
{
if (ch==' ')
i=0;
//因为是空格,所以在单词外面,i要置为0。
else if (i==0)
//不是空格,但i为零在单词外面了,所以到了一个单词结尾。
{
words++;
//单词数加1。
i=1;
//在单词里面所以i=1.
}
}
printf("you input %d words.\n",words);
return 0;
}
这个就没问题
[
本帖最后由 a271885843 于 2012-2-7 22:21 编辑 ]