输出一串字符找出最大的单词,出现烫烫烫,是代码哪里错了吗

C语言 码拜 3年前 (2017-04-12) 443次浏览

#include<stdio.h>
#include<stdlib.h>
#pragma warning(disable:4996)
int main(void)
{
char ch[100];
int  i, j, len, maxlen, p;
i = len = maxlen = 0;
printf(“\n输入一串字符:”);
gets(ch);
do
{
j = i;
for (len = 0; ch[i] != ” “&&ch[i] != “\0”; i++)
{
           len++;
}
        if (len > maxlen)
{
maxlen = len;
p = j;
}
i++;
} while (ch[i] != “\0”);
printf(“\n”);
if (len == 0)
printf(“\n没有输入单词!”);
else
{
for (i = p; i < p + maxlen; i++)
printf(“%c”, ch[i]);
printf(“\n”);
}
system(“pause”);
return 0;
}

解决方案

80

} while (ch[i] != “\0”);
改成
} while (ch[i-1] != “\0”);

#include<stdio.h>
#include<stdlib.h>
#pragma warning(disable:4996)
int main(void)
{
	char ch[100];
	int  i, j, len, maxlen, p;
	i = len = maxlen = 0;
	printf("\n输入一串字符:");
	gets(ch);
	do
	{
		j = i;
		for (len = 0; ch[i] != " "&&ch[i] != "\0"; i++)
		{
			len++;
		}
		if (len > maxlen)
		{
			maxlen = len;
			p = j;
		}
		i++;
	} while (ch[i-1] != "\0");
	printf("\n");
	if (len == 0)
		printf("\n没有输入单词!");
	else
	{
		for (i = p; i < p + maxlen; i++)
			printf("%c", ch[i]);
		printf("\n");
	}
	system("pause");
	return 0;
}

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明输出一串字符找出最大的单词,出现烫烫烫,是代码哪里错了吗
喜欢 (0)
[1034331897@qq.com]
分享 (0)