我写了下面的代码
#include<stdio.h>
int main(void)
{
int i, max = 0, count = 0, j;
char str[] = "I'm a programmer";
for(i = 0; i < str[i]; i++)
{
if (str[i] != ' ')
count++;
else
{
if (max < count)
{
j = i - count;
max = count;
}
count = 0;
}
}
for(i = j; i < j + max; i++)
printf("%c", str[i]);
return 0;
}
本意是查找并打印最长的单词,但当最长的单词 this 在最后作为 我是一名程序员 我打印 我 时不起作用> 而不是程序员
如何解决这个问题,有人帮我
最佳答案
for
循环的终止条件是错误的。应该是:
for(i = 0; i < strlen(str) + 1; i++)
而且,因为在字符串末尾没有有一个' '
,但是有一个'\0'
,你应该改变:
if (str[i] != ' ')
至:
if (str[i] != ' ' && str[i] != '\0')
关于c - 打印字符串中最长的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30830330/