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

时间:2014-04-11 15:58:12

标签: 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);
    }

输出: 输入字符串 A B C D 输入的字符串是

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

2 个答案:

答案 0 :(得分:2)

&string[4]是数组末尾的一个,只需使用string来引用数组的开头。

你也应该在末尾留出空格来放置一个空终止字符。

答案 1 :(得分:2)

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

将其更改为

scanf("%s", string);

如果你想保留4个字符,你需要至少使用size = 5(最后一个是空终止字符):

char string[5];