我正在尝试在运行时存储一个字符串。
#include<stdio.h>
#include<string.h>
void main()
{
char string[4];
printf("Enter the String\n");
scanf("%s", &string[4]);
printf("The String entered is %s\t", string);
}
输出: 输入字符串 A B C D 输入的字符串是
但实际预期输出应该是输入的字符串是ABCD。为什么我变空了。
答案 0 :(得分:2)
&string[4]
是数组末尾的一个,只需使用string
来引用数组的开头。
你也应该在末尾留出空格来放置一个空终止字符。
答案 1 :(得分:2)
&string[4]
是数组末尾的地址,而不是数组的开头。
将其更改为
scanf("%s", string);
如果你想保留4个字符,你需要至少使用size = 5(最后一个是空终止字符):
char string[5];