标题:泣泪求助:怎样统计一行字符中的被空格分隔的单词个数
只看楼主
艺诺洋洋
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-4-29
 问题点数:0 回复次数:7 
泣泪求助:怎样统计一行字符中的被空格分隔的单词个数
纠结了一个礼拜了,真的做不来,很难过

题目:
输入一行字符,统计其中单词的个数。各单词之间用空格分隔,空格数可以是多个。
说明:
比如输入cn kgn ien ien isn
应该有5个单词

泣泪求助
搜索更多相关主题的帖子: 空格 单词 字符 分隔 统计 
2007-04-29 16:04
艺诺洋洋
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-4-29
得分:0 

呼唤好心人

2007-04-29 17:48
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
得分:0 
//很投机的一个办法
int count=0;
for(int i=0;str[i]!='\0';i++)
{
if(str[i]==' ')
{
count++;
}
}

printf("%d\n",count+1);

倚天照海花无数,流水高山心自知。
2007-04-29 20:31
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
得分:0 
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)
{
count++;
}
}

printf("%d\n",count+1);

倚天照海花无数,流水高山心自知。
2007-04-29 20:35
jiangliangju
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2007-3-9
得分:0 

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++;
}

}

2007-04-29 21:06
艺诺洋洋
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-4-29
得分:0 
谢谢谢谢
2007-04-29 21:11
shang209
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-3-18
得分:0 
回复:(艺诺洋洋)泣泪求助:怎样统计一行字符中的被...

//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);
}

2007-04-30 10:31
洛川
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2007-4-28
得分:0 
呵呵,正好做过
#include <stdio.h>
#include <string.h>
#define N 80
void main()
{int i,n=1;
char str[N];
printf("请输入一个字符串:");
gets(str);
if(str[0]==' ')
n=0;
for(i=1;str[i]!='\0';i++)
if(str[i]!=' '&&str[i-1]==' ')
n++;
printf("%d\n",n);
}
前中后包含多个空格也没有问题

2007-04-30 15:20



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-135995-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024904 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved