设置2D字符数组等于另一个2D字符数组

问题描述 投票:0回答:1

我正在尝试将2D字符数组中的特定字符串设置为等于2D字符数组中的另一个字符串,以便可以通过在其中输入NULL字符串来删除第一个数组的字符串。有没有办法在我的代码中使if(deleteCourse [0] == courseName [i])工作?

char courseName[18][25];
char deleteName[1][25];
char empty[1][25] = {NULL};

printf("Enter your course name: ");
scanf(" %[^\n]s", &courseName[9]); // assume I input a course at row 9

printf("Enter your course name to delete: "); // typing the same name as courseName[9]
scanf(" %[^\n]s", &deleteCourse[0]); 

for(int i = 0; i < 18; i++)
{
    if(deleteCourse[0] == courseName[i]) // scanning for the same string name
    {
        strncpy(courseName[i], empty[0], 25); // using NULL, empty[0], to empty the string, courseName[i]
    }
}
c if-statement multidimensional-array
1个回答
0
投票
scanf(" %[^\n]s", &courseName[9]);

如果要输入字符串作为输入行9,则不应使用&

scanf(" %[^\n]s", courseName[9]);

类似于deleteCourse

scanf(" %[^\n]s", deleteCourse[0]);

OT,当您定义空字符串时:

char empty[1][25] = {NULL};

不完全正确,这意味着您分配给所有字符= NULL,但NULL用于指针。如果需要空字符串,可以声明:

char empty[] = "";
© www.soinside.com 2019 - 2024. All rights reserved.