在C中将字符串扫描到数组中

时间:2016-12-27 15:40:44

标签: c vector scanf c-strings

我想将这些值扫描到数组中。我创建了一个结构,数组就是那种类型。 我的问题是,当我编译时,所有的int工作正常,但是当涉及到字符串时,它不允许我插入任何值并跳转到我的代码的下一条指令。 我做错了什么?

string(bs)

提前致谢!

1 个答案:

答案 0 :(得分:1)

scanf("%s",str)怎么样?其中str是一个char数组。

这是自定义getline函数

char * getline(char cp) {
    char * line = malloc(100), * linep = line;
    size_t lenmax = 100, len = lenmax;
    int c;


    if(line == NULL)
        return NULL;

    for(;;) {
        c = fgetc(stdin);
        if(c == EOF)
            break;

        if(--len == 0) {
            len = lenmax;
            intptr_t diff = line - linep;
            char * linen = realloc(linep, lenmax *= 2);

            if(linen == NULL) {
                free(linep);
                return NULL;
            }
            line = linen + diff;
            linep = linen;
        }

        if((*line++ = c) == cp)
            break;
    }
    *line = '\0';
    return linep;
}

cp是你想在一条线上读的字符。