程序功能: 输入字符串s和字符串sub,判断字符串s中是否存在sub子串,若存在,将字符 串s中第一个sub子串的所有字符替换成'*',并输出变换后的字符串,否则输出“不存在该 子串! ”。用C语言写
时间: 2024-10-20 07:13:11 浏览: 34
你可以使用C语言编写如下的函数来实现这个功能:
```c
#include <stdio.h>
#include <string.h>
// 定义替换子串的函数
void replace_substring(char *s, char *sub) {
size_t sub_len = strlen(sub);
// 遍历s,查找子串sub
for (size_t i = 0; s && i <= strlen(s) - sub_len; i++) {
if (strncmp(&s[i], sub, sub_len) == 0) { // 如果找到匹配的子串
// 将第一个子串替换为*
memmove(&s[i + sub_len], &s[i + sub_len], strlen(&s[i + sub_len]) + 1); // 移动剩余部分
memset(&s[i], '*', sub_len); // 在原位置填充*
break;
}
}
// 检查是否找到子串,如果没找到则输出提示信息
if (!s || !strstr(s, sub)) {
printf("不存在该子串!\n");
} else {
printf("替换后的字符串: %s\n", s);
}
}
int main() {
char s[100], sub[100];
printf("请输入字符串s: ");
fgets(s, sizeof(s), stdin); // 注意移除换行符
s[strlen(s) - 1] = '\0'; // 去掉fgets留下的换行符
printf("请输入子串sub: ");
fgets(sub, sizeof(sub), stdin);
sub[strlen(sub) - 1] = '\0'; // 同上
replace_substring(s, sub);
return 0;
}
```
这个程序首先获取用户输入的字符串`s`和子串`sub`,然后遍历`s`查找子串`sub`。一旦找到,就将第一个子串替换为`*`。如果没有找到子串,就会输出相应的提示信息。记得在处理用户输入时考虑结束符。
阅读全文