如何在2D角色阵列之间复制字符串?

时间:2017-04-28 10:01:16

标签: c multidimensional-array

无法将字符串从2D数组cGroceName复制到cGroceNameBill_1。

void main() {

    char cGroceName[100][100];
    char cGroceNameBill_1[100][100];
    printf("\nEnter Number of Groceries:");
    scanf_s("%d", &iGrocNum);

    for (int i = 0; i < iGrocNum; i++) {
        printf ("\nEnter GroceryName:");
        scanf_s("\n%99s", cGroceName[i], sizeof cGroceName[i]);
    }

    for(int i=0;i<iGrocNum;i++) {
        cGroceNameBill_1[i] = cGroceName[i] //--This is not working
    }

}

1 个答案:

答案 0 :(得分:0)

你所做的只是有效地分配一个&#34;指针&#34;到另一个。您需要以某种方式复制字符串,即strcpysnprintf

将最后一个循环更改为:

for(int i=0;i<iGrocNum;i++) {
    snprintf(cGroceNameBill_1[i], strlen(cGroceName[i]), "%s", cGroceName[i]);
}

使用snprintf确保安全。

或使用

sprintf(cGroceNameBill_1[i], "%s", cGroceName[i]);

我不确定您要打印它们的时间/地点,但是当您这样做时,它只是打电话给printf。真的,你需要拿一本C编程书,第1-2章。

for(int i=0;i<iGrocNum;i++) {
    printf("%s", cGroceNameBill_1[i]);
}