已知有定义如下:char name[][20]={"zhang","wang","sun","chen","huang"};请编写程序实现字符串的删除,输出删除后的结果。待删除字符串由用户输入,要求使用函数实现
时间: 2023-09-22 22:09:14 浏览: 135
好的,关于你的要求,我会尽力满足。以下是我编写的代码,请确认是否符合你的需求:
```
#include <stdio.h>
#include <string.h>
void delete_str(char name[][20], int index) {
for (int i = index; i < 4; i++) { // 将后面的字符串往前移
strcpy(name[i], name[i+1]);
}
strcpy(name[4], ""); // 将最后一个字符串清空
}
int main() {
char name[][20]={"zhang","wang","sun","chen","huang"};
char str[20];
int index = -1;
printf("请输入要删除的字符串:");
scanf("%s", str);
for (int i = 0; i < 5; i++) {
if (strcmp(str, name[i]) == 0) { // 找到要删除的字符串
index = i;
break;
}
}
if (index == -1) { // 没有找到要删除的字符串
printf("不存在该字符串!\n");
} else {
delete_str(name, index);
printf("删除后的结果为:\n");
for (int i = 0; i < 4; i++) {
printf("%s ", name[i]);
}
printf("\n");
}
return 0;
}
```
如果输入的字符串在数组中不存在,输出“不存在该字符串!”;如果存在,则删除该字符串并且将删除后的结果输出。
如有需要,还可以进行一些异常处理、输入校验等操作。
阅读全文