C语言 输入一串字符。求单词个数,字符串的长度 每个单词有几个字符,
在线等。。还可以继续加分。。。高手帮帮忙吧是按空格算的那个算4个您好。。请问下面的那位可以不用匿名么。。还有问题想请教...
在线等。。还可以继续加分。。。高手帮帮忙吧
是按空格算的 那个算4个 您好。。请问下面的那位可以不用匿名么。。还有问题想请教 展开
是按空格算的 那个算4个 您好。。请问下面的那位可以不用匿名么。。还有问题想请教 展开
3个回答
展开全部
你这个字符串中的单词是用什么符号分隔的?空格,逗号,还是分号?提问题要说的清楚一点,不然别人帮不了你。如果是有分隔符的那你就用substring函数(时间长了忘记C语言里用的是substr还是substring)每次取一个字符,取到分隔符了就把单词个数加一,并且在每取一个字符的时候把单个单词的字符数+1,取到分隔符的时候把单个单词字符数输出,清空这个变量用于计算下一个单词的字符个数。至于你说的字符串长度,分隔符算不算进内?如果算直接用length方法就行了,如果不算就在上面取字符的时候每取一个加一次,取到分隔符不加。
如果说你的字符串里是没有分隔符的,不好意思做不了。因为要用到单词库,智能比对,数据库,遍例等等。非常庞大的工程不是你我做的了的
如果说你的字符串里是没有分隔符的,不好意思做不了。因为要用到单词库,智能比对,数据库,遍例等等。非常庞大的工程不是你我做的了的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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);
}
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();
}
比如:
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();
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询