无法使fgets()和strcat()以所需的方式运行

时间:2015-11-26 17:17:13

标签: c string fgets strcat

#include "stdio.h"
#include "stdlib.h"
#include "string.h"

int main(){
    char storage[128]="\0";
    char buffer[24];
    fgets(buffer, 24, stdin);
    strcat(storage, buffer);
    fgets(buffer, 24, stdin);
    strcat(storage, buffer);
    printf("%s", storage); // line 12
    return 0;
    }

当我在之前的line 12行输入"string one\0string two""string one"时,我试图看到"string two"打印fgets(),而是打印{{1} }}。据我所知"string one\nstring two"终止第一个字符串末尾的strcat()所以这段代码应该给我我想要的格式,但事实并非如此。我做错了什么?

1 个答案:

答案 0 :(得分:1)

结果"string one\nstring two"是正确的,因为新行由fgets读取。按Enter键结束输入时输入换行符。

  

换行符使fgets停止读取,但它被函数视为有效字符,并包含在复制到str的字符串中。