一个C语言小问题,谢谢解答

来源:百度知道 编辑:UC知道 时间:2024/05/14 12:19:03
一个小问题,谢谢解答
int getline(char s[ ],int lim)
{int c,i;
for (i=0;i<lim-1&&(c=getchar())!=EOF&&c!='\n';++i)
s=c;
if (c=='\n') {
s=c;
++i;
}
s='\0';
return i;
}

希望各位先帮我详解一下这个程序,说得通俗一点,我看了很久也看不懂,然后再说说return阿.getline里面的两个参数是什么意思,有什么用,最好说得具体些,在此先谢谢了

你这程序错误不少啊!!!c是个整形数怎么可以和'\n'相比较啊!怎么赋值给字符串数组啊?太多错误了啊!!
getline是你自己定义的函数模块,return i是把i返回主函数!

int getline(char s[],int lim)
{
int c,i;
for (i=0;(i<lim-1)&&((c=getchar())!=EOF)&&(c!='\n');++i)
s[i]=c;

if (c=='\n')
{
s[i]=c;
++i;
}

s[i]='\0';
printf("%s",s);
return i;
}
我稍微改了一下主要问题还是出在 s=c上
另外就是不太明白这个函数是干嘛用的

楼上的,如果c是char型。则以下语句会有问题
c=getchar())!=EOF

可以用(char)c=='\n';强制转换的。'\n'在机器内部就存成8位的ACSII码的。所以没问题。但这个程序有问题。

这个程序有问题。s是一个数组。而c是int。怎么能s=c呢?

最少应该是s[i]=c吧。

s[]是一个字符串。lim是要生成的字符串中的最大的长度。i是字符串的长度。

getline。这个函数名字了(标签!)
return i是这个函数返回i 给主调函数;