c语言空格字符怎么表示

下面的代码为什么不能实现我想要的输出字符串的最长数
比如 i am a student
输出 student
c

# include <stdio.h>

# include <string.h>
int length=0;
void main()
{

char line[20];
gets(line);
int longest(char[]);

for (int i=longest(line);i<8;i++)
printf("%C",line[i]);

}
int longest (char str[])
{
int place=0;
int count=0;

for (int i=0;i<strlen(str);i++)
{if(str[i]!=' ')
count++;
else
if(count>length)
{length=count;
place=i;
}
count=0;
}
return place;

}
for (int i=longest(line);i<8;i++)
打错了
是 for (int i=longest(line);i<length;i++)

第1个回答  推荐于2018-05-10
你犯的都是一些小错误,在你程序基础上,帮你改过调试成功的程序
#include <conio.h>
# include <stdio.h>

# include <string.h>
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;j<i+count;j++)
printf("%c",line[j]);

getch();
}
int longest (char str[],int *len)
{
int place=0;
int count=0;

for (int i=0;i<strlen(str);i++)
{
if(str[i]!=' ')
count++;
else if(count>length)
{
length=count;
place=i;
count=0;
}

}
*len = count;
place +=1;
return place;

}本回答被网友采纳
第2个回答  2019-07-04
1
在c语言中空字符用'\0'表示
2
扩展
'\0'对应的整型值是0,所以给一个字符变量赋值为空字符时,以下两种都是可以的
char ch='\0';char ch=0;
第3个回答  2008-04-11
你的longest(line)返回的是最长单词的起始位置,那么i最终达到的位置就不是length,而是longest(line)+length
你的程序我给改了,输入要求最后一个单词后面也有一个空格,你看看吧
# include <stdio.h>

# include <string.h>
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<j;i++) //修改
printf("%C",line[i]);

}
int longest (char *str) //修改
{
int place=0;
int count=0;
int i=0;

for (i=0;i<strlen(str);i++)
{if(str[i]!=' ')
count++;
else if(count>length)
{length=count;
place=i;
count=0;
}
}
return place;

}
第4个回答  2008-04-11
你的int longest (char str[]) 表明返回值为一个整形数,而你需要的是一个整形指针指向一个字符串。本回答被提问者采纳
第5个回答  2020-04-11
1
在c语言中空字符用'\0'表示
2
扩展
'\0'对应的整型值是0,所以给一个字符变量赋值为空字符时,以下两种都是可以的
char
ch='\0';
char
ch=0;

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网