C语言中一个二维字符串数组如何删除某一行
时间: 2023-12-01 11:02:16 浏览: 119
要删除一个二维字符串数组中的某一行,可以通过以下步骤实现:
1. 找到要删除的行的索引。
2. 将要删除的行之后的所有行向上移动一个位置。
3. 将最后一行复制到删除的行上。
4. 减少二维数组的大小。
下面是一个示例代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char arr[3][10] = {"hello", "world", "how"};
int row_to_delete = 1; // 删除第2行
int rows = sizeof(arr) / sizeof(arr[0]);
int cols = sizeof(arr[0]) / sizeof(char);
// 找到要删除的行的索引
if (row_to_delete < rows)
{
// 将要删除的行之后的所有行向上移动一个位置
memmove(arr + row_to_delete, arr + row_to_delete + 1, (rows - row_to_delete - 1) * cols);
// 将最后一行复制到删除的行上
memcpy(arr + rows - 1, arr + rows, cols);
// 减少二维数组的大小
rows--;
}
// 打印数组
for (int i = 0; i < rows; i++)
{
printf("%s\n", arr[i]);
}
return 0;
}
```
这个例子中,我们删除了第2行(从0开始计数),输出结果应该为:
```
hello
how
```