问题遇到的现象和发生背景
C语言 输入并输出字符串 无法正常输出
用代码块功能插入代码,请勿粘贴截图
void main()
{
char *str[50];
str[0] = "40";
str[1] = getchar();
puts(str[0]);
puts(str[1]);
}
C语言 输入并输出字符串 无法正常输出
void main()
{
char *str[50];
str[0] = "40";
str[1] = getchar();
puts(str[0]);
puts(str[1]);
}
很简单的一个问题
首先你需要知道以下几点:
也就是说 , 你用scanf输入 scanf("%s",a); 等同于 scanf("%s",&a[0]);
输入字符串使用的函数也有 gets 这个会读入空格等 直到你输入了回车
get(a);
还有 char *str[50] 的意思是定义一个 指针列表,如果你要定义的是字符串的话应该是 char str[50];
char *str = "aaa"; 确实可以定义一个字符串,只不过我们一般认为这个字符串为常量字符串,是不支持修改的。
而没有初始化的指针是不能对他进行赋值的操作的。
比如 char *str; scanf("%s",str);这样子我们认为这个输入实际上是溢出了,会有难以预计的后果。
如果你是需要有 50 个字符串呢,建议使用
chat str[50][50] = {0}; 这种方式去定义。而不是 char *str[50];