我正在尝试将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]
}
}
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[] = "";