c语言查找字符串并替换
时间: 2024-05-02 19:17:03 浏览: 8
你可以使用C语言中的字符串函数 `strstr()` 和 `strcpy()` 来查找并替换字符串。
下面是一个示例代码,用于在字符串中查找并替换特定的子字符串:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[100], search[20], replace[20], newstr[100];
int i, j, l, l1, l2, flag = 0;
printf("Enter a string: ");
gets(str);
printf("Enter search substring: ");
gets(search);
printf("Enter replace substring: ");
gets(replace);
l1 = strlen(str);
l2 = strlen(search);
for (i = 0, j = 0; i < l1;)
{
if (str[i] == search[j])
{
flag = 1;
for (l = i; l < i + l2; l++)
{
if (str[l] != search[l-i])
{
flag = 0;
break;
}
}
if (flag == 1)
{
for (l = 0; l < strlen(replace); l++)
newstr[i+l] = replace[l];
j = 0;
i += l2;
}
else
newstr[i] = str[i];
}
else
newstr[i] = str[i];
i++;
}
newstr[i] = '\0';
printf("Original string: %s\n", str);
printf("New string: %s\n", newstr);
return 0;
}
```
在上面的代码中,我们使用 `gets()` 函数从用户那里获取输入的原始字符串、要查找的子字符串和要替换的子字符串。然后,我们使用 `strlen()` 函数获取字符串的长度,并使用 `for` 循环遍历原始字符串。在每个循环迭代中,我们使用 `if` 语句来比较原始字符串和要查找的子字符串,并在找到匹配的子字符串时使用 `for` 循环将其替换为要替换的子字符串。最后,我们打印出原始字符串和替换后的字符串。
请注意,上面的代码并不完美,它可能会出现一些边界情况的问题,比如要替换的子字符串长度和查找到的子字符串长度不同等等。因此,在实际应用中,需要对代码进行更多的测试和改进。