用C语言写一个程序,实现对字符串(自己输入)的多次插入,多次增添,多次替换(每次可以自己选择使用哪个功能)
时间: 2024-05-10 17:18:05 浏览: 14
以下是一个简单的程序,可以实现对字符串的多次插入、增添和替换功能。你可以根据自己的需要进行修改。
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100
void insert(char *str, char *insert_str, int pos);
void add(char *str, char *add_str);
void replace(char *str, char *old_str, char *new_str);
int main() {
char str[MAX_LEN];
char insert_str[MAX_LEN];
char add_str[MAX_LEN];
char old_str[MAX_LEN];
char new_str[MAX_LEN];
int choice, pos;
printf("请输入一个字符串:");
fgets(str, MAX_LEN, stdin);
str[strcspn(str, "\n")] = '\0';
while (1) {
printf("\n请选择操作:\n");
printf("1. 插入字符串\n");
printf("2. 增添字符串\n");
printf("3. 替换字符串\n");
printf("4. 退出程序\n");
scanf("%d", &choice);
getchar(); // 读取多余的换行符
switch (choice) {
case 1:
printf("请输入要插入的字符串:");
fgets(insert_str, MAX_LEN, stdin);
insert_str[strcspn(insert_str, "\n")] = '\0';
printf("请输入插入位置:");
scanf("%d", &pos);
getchar(); // 读取多余的换行符
insert(str, insert_str, pos);
printf("插入后的字符串:%s\n", str);
break;
case 2:
printf("请输入要增添的字符串:");
fgets(add_str, MAX_LEN, stdin);
add_str[strcspn(add_str, "\n")] = '\0';
add(str, add_str);
printf("增添后的字符串:%s\n", str);
break;
case 3:
printf("请输入要替换的字符串:");
fgets(old_str, MAX_LEN, stdin);
old_str[strcspn(old_str, "\n")] = '\0';
printf("请输入替换后的字符串:");
fgets(new_str, MAX_LEN, stdin);
new_str[strcspn(new_str, "\n")] = '\0';
replace(str, old_str, new_str);
printf("替换后的字符串:%s\n", str);
break;
case 4:
printf("程序已退出。\n");
return 0;
default:
printf("无效的操作,请重新选择。\n");
break;
}
}
return 0;
}
void insert(char *str, char *insert_str, int pos) {
int len = strlen(str);
int insert_len = strlen(insert_str);
if (pos < 0 || pos > len) {
printf("无效的插入位置。\n");
return;
}
memmove(str + pos + insert_len, str + pos, len - pos + 1);
memcpy(str + pos, insert_str, insert_len);
}
void add(char *str, char *add_str) {
strcat(str, add_str);
}
void replace(char *str, char *old_str, char *new_str) {
int old_len = strlen(old_str);
int new_len = strlen(new_str);
char *pos;
while ((pos = strstr(str, old_str))) {
memmove(pos + new_len, pos + old_len, strlen(pos + old_len) + 1);
memcpy(pos, new_str, new_len);
}
}
```
注意,这个程序中使用了一些 C 语言的库函数,例如 `fgets`、`strcspn`、`memmove`、`memcpy`、`strcat` 和 `strstr`,你需要查阅相关文档了解它们的用法。