你犯的都是一些小错误,在你程序基础上,帮你改过调试成功的程序
#include
# include
# include
int length=0;
int main()
{
char line[20];
int longest(char[],int *count);
int count = 0;
int j;
int i= 0;
gets(line);
i = longest(line,&count);
for (j = i;jprintf("%c",line[j]);
getch();
}
int longest (char str[],int *len)
{
int place=0;
int count=0;
for (int i=0;i
if(str[i]!=' ')
count++;
else if(count>length)
{
length=count;
place=i;
count=0;
}
}
*len = count;
place +=1;
return place;
}
1
在c语言中空字符用'\0'表示
2
扩展
'\0'对应的整型值是0,所以给一个字符变量赋值为空字符时,以下两种都是可以的
char ch='\0';char ch=0;
你的longest(line)返回的是最长单词的起始位置,那么i最终达到的位置就不是length,而是longest(line)+length
你的程序我给改了,输入要求最后一个单词后面也有一个空格,你看看吧
# include
# include
int longest(char*); //添加
int length=0;
void main()
{
int i=0,j=0;
char line[20];
gets(line);
j=longest(&line[0]);//添加
for (i=j-length;i
}
int longest (char *str) //修改
{
int place=0;
int count=0;
int i=0;
for (i=0;i
count++;
else if(count>length)
{length=count;
place=i;
count=0;
}
}
return place;
}
你的int longest (char str[]) 表明返回值为一个整形数,而你需要的是一个整形指针指向一个字符串。
1
在c语言中空字符用'\0'表示
2
扩展
'\0'对应的整型值是0,所以给一个字符变量赋值为空字符时,以下两种都是可以的
char
ch='\0';
char
ch=0;