C语言问题 非常简单 急教 关于%s

#include <stdio.h>
main()
{
char b;
scanf("%s",&b);
printf("%s",*b);

}

按vc“!”后,弹出个窗口说“该内存不能为read"

我愿意是:输入一段字附串,然后再自动打印。请问哪里出原因!!
那星"*"号是我不小心打多上去的!
最新回答
微凉°

2024-10-15 05:48:35

晕死! 

你最基本的东西搞错了。 

%s确实是读入字符串,但你定义 char b 是读取一个字符。当然会报错。 

如果你要读取字符串把 char b; 修改为: char b[80]; 

在scanf里把那个 & 去掉 

在printf里把那个 * 去掉 

就可以了。

逗比在此

2024-10-15 06:26:24

#include <stdio.h>
main()
{
char b;
scanf("%s",&b); 把%s改成%c (&楼上说删掉,是不能,它是把值付给b,没有&程序执行不了)
printf("%s",*b); 把%s改成%c, *去掉

}
重温那逝去的记忆

2024-10-15 04:58:22

溢出了。
char b;是一个字符,不是字符串。scanf()超出了b的内存范围。
用字符数组。
#include <stdio.h>
main()
{
char b[50];
scanf("%s",b); /*把&去掉*/
printf("%s",b);
}

回复楼下的:
楼主要的是“字符串”,不是一个字符。
一枝沈荼

2024-10-15 07:46:45

修改为
main()
{
char b;
scanf("%c",&b);
printf("%c",b);

}
爱是一场闹剧

2024-10-15 02:46:20

&b 这里 你可以把&去掉以后再试试看