在C中的运行时存储字符串

在C中的运行时存储字符串,c,C,我试图在运行时存储字符串 #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); } #包括 #包括

我试图在运行时存储字符串

#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);
    }
#包括
#包括
void main()
{
字符串[4];
printf(“输入字符串\n”);
scanf(“%s”和字符串[4]);
printf(“输入的字符串是%s\t”,字符串);
}
输出: 输入字符串 ABCD 输入的字符串为


但实际预期输出应为输入的字符串为ABCD。为什么我会变空。

&string[4]
是数组末尾之后的一个字符串,只需使用
string
引用数组的开头即可


您还应该在末尾留出空格以放置空终止字符。

&string[4]
是数组末尾的地址,而不是数组的开头

换成

scanf("%s", string);
如果您想保存4个字符,则需要至少将其设置为size=5(最后一个是空终止字符):


char字符串[5]<代码>扫描(“%4s”,字符串)
&string[4]
->
string
。。。
char string[5];