泣泪求助:怎样统计一行字符中的被空格分隔的单词个数
纠结了一个礼拜了,真的做不来,很难过题目:
输入一行字符,统计其中单词的个数。各单词之间用空格分隔,空格数可以是多个。
说明:
比如输入cn kgn ien ien isn
应该有5个单词
泣泪求助
cn kgn ien ien isn
int count=0;
for( int i = 0 ; str[i] != '\0' ; i ++ )
{
int flag=0;//防止出现连续的空格.
while(str[i]!='\0'&&str[i]!=' ')
{
flag=1;
i++;
}
if(flag)//如果flag==1的话不就是有单词吗,此时不应该计数的
{
count++;
}
}
我的想法是
int count=0;
for(int i=0;str[i]!='\0';i++)
{
if(str[i]==' '&&str[i-1]!=' ')
{
count++;
}
}
//VC++6.0 下运行
#include <stdio.h>
#include <string.h>
char const whitespace[] = " \t\f\r\v\n";
void main()
{
int count;
char buffer[101];
char* tok;
count = 0;
gets(buffer);
for(tok = strtok(buffer, whitespace);
tok != NULL;
tok = strtok(NULL, whitespace))
++count;
printf("%d\n", count);
}