c语言字符串-由键盘输入一行英文句子,输出字符最多的单词。

#include<stdio.h>#include<string.h>main(){inta=0,i,j=0,m=0;charc[80],b[80];gets(c);fo... #include<stdio.h>
#include<string.h>
main()
{
int a=0,i,j=0,m=0;
char c[80],b[80];
gets(c);
for(j=0;j<=80;j++)
{
i=0;
while(c[j]!=' ')
i++;
if(a<=i)
{
a=i;
for(m=0;m<a;m++)
b[m]=c[j];
}
}
puts(b);
}
为什么没有输出呢?
展开
 我来答
百度网友1cbdd57f4
推荐于2016-06-04 · TA获得超过139个赞
知道小有建树答主
回答量:98
采纳率:0%
帮助的人:97.4万
展开全部
这个while一直为真
while(c[j]!=' ')
i++;
这个复制单词是错误的
for(m=0;m<a;m++)
b[m]=c[j];

我改了一下程序,应该使用下面的比较好。

#include<stdio.h>
#include<string.h>
int main() {
//a 单词的临时最大长度
//i 每个单词的长度
//len 输入的字符的字符个数
int a = 0, i = 0, j = 0, m = 0, len = 0;
char c[80], b[80];
gets(c);
len = strlen(c); //计算c中的字符个数
for (j = 0; j < len; j++) {
if (c[j] != ' ') {
i++; //如果一直是单词字符,i增加1
}
if (c[j] == ' ' || c[j] == '\0') { //如果c中遇到空格或结束符
if (a < i) {
a = i;
for (m = 0; m < i; ++m) { //复制单词
b[m] = c[j - i + m];
}
}
i = 0;
}
}
b[m] = '\0'; //给单词末尾加上"\0"
puts(b);
}

应该这样写
aqwgf80
2010-11-28 · TA获得超过225个赞
知道答主
回答量:142
采纳率:0%
帮助的人:0
展开全部
#include <string.h>

int strncmp1(char* a, char* b, int n)
{
int i = 0;
if (a==0 || b==0)
return 0;/* 空指针不作处理*/
while (i<n && *(a+i) && *(b+i))
{
if (*(a+i)>*(b+i))
return 1;
if (*(a+i)<*(b+i))
return -1;
i++;
}

return 0;
}

main()
{
int n,k;
printf("%d",strncmp1("bc","bc",2));
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
激动的马
2010-11-24
知道答主
回答量:56
采纳率:0%
帮助的人:12.9万
展开全部
这个while一直为真
while(c[j]!=' ')
i++;
也就说下面的b[m]根本就是空的 所以没有输出 不过楼上的写的也有问题~~ 你自己看看再改改吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jfaau02
2010-11-25 · TA获得超过358个赞
知道答主
回答量:265
采纳率:100%
帮助的人:48.2万
展开全部
#include <string.h>

int strncmp1(char* a, char* b, int n)
{
int i = 0;
if (a==0 || b==0)
return 0;/* 空指针不作处理*/
while (i<n && *(a+i) && *(b+i))
{
if (*(a+i)>*(b+i))
return 1;
if (*(a+i)<*(b+i))
return -1;
i++;
}

return 0;
}

main()
{
int n,k;
printf("%d",strncmp1("bc","bc",2));
}
我可以帮助你,你先设置我最佳答案后,我百度Hii教你。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
许瑞答问狂
2010-11-27
知道答主
回答量:18
采纳率:0%
帮助的人:17.2万
展开全部
首先,第一个for循环中i<80;
其次,while语句也有误,因为如果一但c[j]这个字符不是空格,那么就成了死循环了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式