使用C中的字符指针的字符串

时间:2017-08-15 14:29:45

标签: c scanf

当我为至少一个空格的senences进行用户输入时,字符指针仅占用第一个空格,为什么? 如有必要,请提供替代方案

char *ptr;
ptr=(char*)malloc(sizeof(char));
scanf("%Ns",ptr);

*被修改

1 个答案:

答案 0 :(得分:1)

%s的{​​{1}}格式说明符会读取一系列非空白字符。这意味着它会在读取空格,换行符,制表符等后停止。

此外,您只为单个scanf分配空间。这仅足以存储终止空字节。您需要为您希望读取的字符数分配至少足够的空间,并为null终止符分配一个空格。

如果您想阅读整行文字,则应使用char功能。

fgets