将 char 输入复制到字符串数组中

Copy char input into array of strings

我目前正在刷新我的 C 技能,但在使用以下代码时遇到问题:

int main (int argc, const char * argv[]) {

    @autoreleasepool {

        int numberOfTestCases;

        scanf("%d", &numberOfTestCases);

        char *a[numberOfTestCases];

        for (int i = 0; i < numberOfTestCases; i++) {

            char input[100];
            scanf("%s", input);
            a[i] = input;
        }

        for (int k = 0; k < numberOfTestCases; k++) {
            printf("%s\n", a[k]);
        }

    }
    return 0;
}

首先我要给用户输入一个数字来判断she/he要输入多少个字符串

其次我想让用户输入字符串的数量并将它们存储在一个字符串数组中。

最后我想遍历该数组并打印出所有值。所以我的测试输入是例如类似于:

5

我的

姓名

约翰

母鹿

预期结果为

我的

姓名

约翰

母鹿

结果是:

母鹿

母鹿

母鹿

母鹿

母鹿

我不知道如何在数组中插入输入。非常感谢您提供正确方向的提示。

如果 那是一个 C 程序,你会得到 undefined behavior 因为你有一个指针数组,每个您指向嵌套范围内变量的指针,这意味着该变量将超出循环范围之外,并且指针(都指向同一内存)将迷路导致所述未定义行为。