C语言 输入一串字符。求单词个数,字符串的长度 每个单词有几个字符,

在线等。。还可以继续加分。。。高手帮帮忙吧是按空格算的那个算4个您好。。请问下面的那位可以不用匿名么。。还有问题想请教... 在线等。。还可以继续加分。。。高手帮帮忙吧
是按空格算的 那个算4个 您好。。请问下面的那位可以不用匿名么。。还有问题想请教
展开
 我来答
jx120633120
2009-02-11 · TA获得超过326个赞
知道小有建树答主
回答量:325
采纳率:0%
帮助的人:0
展开全部
你这个字符串中的单词是用什么符号分隔的?空格,逗号,还是分号?提问题要说的清楚一点,不然别人帮不了你。如果是有分隔符的那你就用substring函数(时间长了忘记C语言里用的是substr还是substring)每次取一个字符,取到分隔符了就把单词个数加一,并且在每取一个字符的时候把单个单词的字符数+1,取到分隔符的时候把单个单词字符数输出,清空这个变量用于计算下一个单词的字符个数。至于你说的字符串长度,分隔符算不算进内?如果算直接用length方法就行了,如果不算就在上面取字符的时候每取一个加一次,取到分隔符不加。

如果说你的字符串里是没有分隔符的,不好意思做不了。因为要用到单词库,智能比对,数据库,遍例等等。非常庞大的工程不是你我做的了的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
BlueWanderer
2009-02-11 · TA获得超过9209个赞
知道大有可为答主
回答量:5673
采纳率:83%
帮助的人:1983万
展开全部
#include <stdio.h>

void puts_n(char *s, int n)
{
int i = 0;

for (; i < n; i++)
{
putchar(s[i]);
}
}

void main()
{
char s[0x100];
int p0, p1, n = 0;

gets(s);

for (p0 = 0;;)
{
for (;; p0++)
{
if (!s[p0] || s[p0] != ' ')
{
break;
}

n++;
}

if (!s[p0])
{
break;
}

for (p1 = p0;; p1++)
{
if (!s[p1] || s[p1] == ' ')
{
break;
}

n++;
}

puts_n(s + p0, p1 - p0);

printf(" %d\n", p1 - p0);

p0 = p1;
}

printf("%d\n", n);
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2009-02-11
展开全部
相同单词怎么算?
比如:
aaa bbb ccc aaa
算有4个单词,还是3个?

给,已经编译确认了:
#include<stdio.h>
#include<conio.h>
#include<string.h>
#define N 20

int count[N]={0};

int getResult(char* str)
{
char n=0;
char i=0;

while(1)
{
if(*(str+i)==0)
{
n++;
break;
}

if(*(str+i)==' ') n++;

count[n]++;

i++;
}

return n;
}

void main()
{
int num,i;
char str[40]={0};

gets(str);

num=getResult(str);

printf("\n字符串的?度: %d\n",strlen(str));
printf("个数: %d\n",num);
printf("字符个数:\n");
for(i=0;i<num;i++)
printf("%d: %d\n",i+1,count[i]);

getch();
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式