c语言查找字符串并替换
时间: 2024-05-04 09:18:49 浏览: 155
你可以使用C语言中的字符串函数来查找和替换字符串。以下是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[100] = "Hello World";
char find[10] = "World";
char replace[10] = "Universe";
char *ptr;
ptr = strstr(str, find); // 查找字符串
if (ptr)
{
strncpy(ptr, replace, strlen(replace)); // 替换字符串
}
printf("%s", str);
return 0;
}
```
在这个例子中,我们使用了 `strstr()` 函数来查找字符串 `find` 在字符串 `str` 中的位置,并将其赋值给指针变量 `ptr`。如果查找成功,我们使用 `strncpy()` 函数将新的字符串 `replace` 替换原来的字符串。最后,我们打印出替换后的字符串 `str`。
需要注意的是,这个例子中没有处理替换后的字符串超出原字符串长度的情况。在实际应用中,你需要根据具体情况来处理这种情况。
相关问题
c语言在文件中查找字符串并替换
以下是一个简单的C语言程序,它可以在文件中查找指定字符串并进行替换:
```c
#include <stdio.h>
#include <string.h>
#define BUFFER_SIZE 1024
void replace(char *filename, char *search, char *replace) {
FILE *fp;
char buffer[BUFFER_SIZE];
char *p;
int found = 0;
// 打开文件
fp = fopen(filename, "r+");
if (fp == NULL) {
printf("无法打开文件 %s\n", filename);
return;
}
// 逐行读取文件内容
while (fgets(buffer, BUFFER_SIZE, fp) != NULL) {
p = strstr(buffer, search);
if (p != NULL) {
// 找到了指定的字符串
found = 1;
// 替换字符串
strcpy(p, replace);
fputs(buffer, fp);
break;
}
}
// 关闭文件
fclose(fp);
if (found)
printf("已替换文件 %s 中的字符串 %s\n", filename, search);
else
printf("未找到文件 %s 中的字符串 %s\n", filename, search);
}
int main() {
char filename[256], search[256], replace[256];
printf("请输入文件名:");
scanf("%s", filename);
printf("请输入要查找的字符串:");
scanf("%s", search);
printf("请输入要替换的字符串:");
scanf("%s", replace);
replace(filename, search, replace);
return 0;
}
```
程序中使用了 strstr 函数来查找字符串,并使用 strcpy 函数和 fputs 函数来进行字符串替换。需要注意的是,这个程序只能替换文件中第一次出现的指定字符串,如果文件中有多个相同的字符串,只会替换第一个。
c语言文件替换字符串,C语言替换字符串
要在C语言中替换字符串,可以使用`str_replace`函数。下面是一个简单的示例代码:
```c
#include <stdio.h>
#include <string.h>
void str_replace(char *orig, char *rep, char *with) {
char *pos = strstr(orig, rep);
if (pos != NULL) {
size_t orig_len = strlen(orig);
size_t rep_len = strlen(rep);
size_t with_len = strlen(with);
size_t tail_len = orig_len - (pos - orig) - rep_len;
memmove(pos + with_len, pos + rep_len, tail_len + 1);
memcpy(pos, with, with_len);
str_replace(pos + with_len, rep, with);
}
}
int main() {
char str[] = "hello world";
printf("Before replace: %s\n", str);
str_replace(str, "world", "universe");
printf("After replace: %s\n", str);
return 0;
}
```
在上面的代码中,`str_replace`函数接收三个参数:原始字符串`orig`,要替换的字符串`rep`和替换后的字符串`with`。该函数使用`strstr`函数查找要替换的字符串的位置,并使用`memmove`和`memcpy`函数将要替换的字符串替换为新字符串。最后,该函数递归调用自身,以确保替换所有出现的字符串。
在`main`函数中,我们定义一个字符串`str`,并在其上调用`str_replace`函数以将字符串"world"替换为"universe"。然后,我们打印出替换后的字符串以进行验证。
阅读全文