输入字符串s和字符串sub,判断字符串s中是否存在sub子串,若存在,将字符 串s中第一个sub子串的所有字符替换成'*',并输出变换后的字符串,否则输出"不存在该 子串! "。C语言
时间: 2024-10-28 15:06:46 浏览: 14
python七种方法判断字符串是否包含子串
在C语言中,你可以通过以下几个步骤来实现这个功能:
1. 首先,创建一个函数,例如`replace_substring`,接受两个参数:`char *s`(字符串s的指针)和`const char *sub`(子串sub的指针)。
```c
#include <stdio.h>
#include <string.h>
void replace_substring(char *s, const char *sub) {
// 检查子串是否为空
if (!*sub) {
printf("不存在该子串!\n");
return;
}
size_t sub_len = strlen(sub);
size_t s_len = strlen(s);
// 使用滑动窗口搜索子串
for (size_t i = 0; i <= s_len - sub_len; ++i) {
if (strncmp(s + i, sub, sub_len) == 0) { // strncmp比较两个字符串是否相等
// 找到子串的位置,开始替换
strncpy(s + i, "*", sub_len); // 替换子串为*
s[i + sub_len] = '\0'; // 更新字符串长度
break;
}
}
// 输出处理后的字符串
printf("%s\n", s);
}
```
2. 调用`replace_substring`函数,并传入用户提供的字符串和子串:
```c
int main() {
char str[] = "Hello World, this is a test.";
const char sub[] = "World";
replace_substring(str, sub);
return 0;
}
```
在这个例子中,如果`sub`在`s`中找到,它会被替换为`*`;如果没有找到,则会输出提示信息"不存在该子串!"。
阅读全文