用C语言写一个子串插入和子串置换的代码
子串插入:
#include <stdio.h>
#include <string.h>
int main() {
char str[100], substr[50];
int pos;
printf("请输入主串:");
gets(str);
printf("请输入要插入的子串:");
gets(substr);
printf("请输入插入位置:");
scanf("%d", &pos);
int len1 = strlen(str);
int len2 = strlen(substr);
if (pos < 0 || pos > len1) {
printf("插入位置错误!\n");
return 0;
}
// 将主串从插入位置后面的字符向后移动
for (int i = len1; i >= pos; i--) {
str[i+len2] = str[i];
}
// 将子串插入到主串指定位置
for (int i = 0; i < len2; i++) {
str[pos+i] = substr[i];
}
printf("插入后的主串为:%s\n", str);
return 0;
}
子串置换:
#include <stdio.h>
#include <string.h>
int main() {
char str[100], substr[50], newstr[100];
printf("请输入主串:");
gets(str);
printf("请输入要替换的子串:");
gets(substr);
printf("请输入新的子串:");
gets(newstr);
int len1 = strlen(str);
int len2 = strlen(substr);
int len3 = strlen(newstr);
// 先找到要替换的子串在主串中的位置
char *p = strstr(str, substr);
if (p == NULL) {
printf("主串中未找到要替换的子串!\n");
return 0;
}
// 将主串中要替换的子串后面的字符向后移动
for (int i = len1; i >= p-str+len2; i--) {
str[i+len3-len2] = str[i];
}
// 将新的子串插入到主串中要替换的子串的位置
for (int i = 0; i < len3; i++) {
str[p-str+i] = newstr[i];
}
printf("替换后的主串为:%s\n", str);
return 0;
}
原文地址: https://www.cveoy.top/t/topic/btWA 著作权归作者所有。请勿转载和采集!