C语言编程替换字符串中的子串,不用指针怎么做
时间: 2024-02-15 14:03:09 浏览: 82
可以使用字符串库中的函数`strstr()`和`strcpy()`来实现。
具体步骤如下:
1. 使用`strstr()`函数在原字符串中查找要替换的子串,得到子串在原字符串中的起始地址。
2. 如果子串存在,则使用`strcpy()`函数将原字符串中子串之前的部分复制到一个新的字符串中。
3. 然后将替换的新字符串添加到新字符串中。
4. 最后将原字符串中子串之后的部分复制到新字符串中。
例如,要将字符串中的子串"hello"替换为"hi",可以按照如下方式编写代码:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[100] = "hello world, hello everyone!";
char substr[10] = "hello";
char replace[10] = "hi";
char newstr[100] = {0};
char *p = strstr(str, substr); // 查找子串
if (p != NULL) // 如果子串存在
{
strncpy(newstr, str, p-str); // 复制子串之前的部分
strcat(newstr, replace); // 添加替换的新字符串
strcat(newstr, p+strlen(substr)); // 添加子串之后的部分
printf("原字符串:%s\n", str);
printf("替换后字符串:%s\n", newstr);
}
else // 如果子串不存在
{
printf("未找到要替换的子串\n");
}
return 0;
}
```
输出结果为:
```
原字符串:hello world, hello everyone!
替换后字符串:hi world, hi everyone!
```
阅读全文