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

时间:2015-02-04 13:05:32

标签: objective-c c arrays char

我目前正在刷新我的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;
}

首先,我想为用户输入一个数字,以确定他/她想要输入多少个字符串。

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

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

5

名称

约翰

Doe的

,预期结果为

名称

约翰

Doe的

结果是:

Doe的

Doe

Doe

Doe

Doe的

我无法弄清楚如何在数组中插入输入..非常感谢正确方向的提示。

1 个答案:

答案 0 :(得分:3)

如果 这是一个C程序,你会得到undefined behavior,因为你有一个指针数组,你所做的每个指针都指向一个变量一个嵌套的作用域,这意味着变量将超出循环范围,而指针(都指向同一个内存)将会导致所谓的未定义行为。