提交记录 #390
提交时间:2024-12-03 16:18:45
语言:c
状态:Unaccepted
编译情况:编译成功
固定测试点#1:
固定测试点#2:
固定测试点#3:
额外测试点#22:
52【字符】字符替换*——用指针更方便
#include <stdio.h>
#include <string.h>
// 替换函数,将字符串a中所有出现的子串b替换为字符串c
void dayin(char* a, char* b, char* c) {
char* p = a; // p指向a的当前位置
char* q = b; // q指向b的起始位置
int len_a = strlen(a); // a的长度
int len_b = strlen(b); // b的长度
for (int i = 0; i < len_a; i++) {
// 如果在a中匹配到子串b
if (strncmp(p + i, q, len_b) == 0) {
// 输出替换字符串c
printf("%s", c);
// 跳过子串b的长度,继续检查a中下一个位置
i += len_b - 1;
} else {
// 否则输出当前字符
printf("%c", a[i]);
}
}
printf("\n"); // 输出换行符
}
int main() {
char a[101], b[11], c[11]; // 定义三个字符数组
// 读取输入字符串
fgets(a, sizeof(a), stdin);
// 去除换行符
a[strcspn(a, "\n")] = '\0';
fgets(b, sizeof(b), stdin);
b[strcspn(b, "\n")] = '\0'; // 这里应该是'\0'而不是'\mathrm{0}'
fgets(c, sizeof(c), stdin);
c[strcspn(c, "\n")] = '\0'; // 这里应该是'\0'而不是'\mathrm{0}'
// 调用替换函数
dayin(a, b, c);
return 0;
}