关於getchar()和strlen()的用法

来源:百度知道 编辑:UC知道 时间:2024/05/11 23:59:04
如何用这二个函数?

下面的程序有甚麼问题?为甚麼会出现"Lvalue required in function"

#include <stdio.h>
void main()
{
char string[10];
string=getchar();
printf("%s\n",string);
}
改成gets()也有问题出现

不太明白二楼,可不可以详细一点说明,最好举个例子

要注意等号是用来赋值的,等号右面的是值,你用string=getchar();这样的结果是把getchar()函数的返回值赋给了string,而string是一个地址,当然会出错,当然你改成gets()还是错的,都是因为你不能把这两个函数的返回值赋给一个数组的首地址啊,不能和scanf("%s",string);混淆了,你用gets(string)是可以的,但是不能像你那样的用,所以你的程序改成这样:
#include <stdio.h>
void main()
{
char string[10];
scanf("%s",string); //或者gets(string);
printf("%s\n",string);
}
就好咯

“getchar()”是读取一个字符的,有时候为了便于某些程序运行后能够在屏幕上显示结果,也可以在scanf语句和printf语句后加一句“getchar();”。

“strlen()”语句是用来计算一个字符串的长度的,使用这个函数需要声明头文件“include <string.h>”,假设字符串为s={abcde},那么字符串长度为len=strlen(s);得到的 len= 5;

还有,不能用“string=getchar();”这样的语句读字符串,直接就是gets(string);就可以读入字符串string了.

string是数组名,
也是指针,怎么能将字符赋值给它呢

getchar();是读取一个字符,不是一个字符串。你改成gets(),试试

getchar()只能读字符