用c语言在文本文件搜索指定字符串并输出包含该字符串的行的内容(所含字符串的行不止一条)
时间: 2024-05-10 16:21:34 浏览: 12
以下是一个示例代码,可以搜索当前目录下的test.txt文件中包含指定字符串的所有行内容:
```
#include <stdio.h>
#include <string.h>
#define MAX_LINE_LENGTH 1024 // 最大行长度
int main(void) {
char search_str[100]; // 指定字符串
char line[MAX_LINE_LENGTH]; // 读取的一行文本
FILE *fp; // 文件指针
printf("请输入要搜索的字符串:");
scanf("%s", search_str);
fp = fopen("test.txt", "r"); // 打开文件
if (fp == NULL) {
printf("打开文件失败\n");
return 1;
}
while (fgets(line, MAX_LINE_LENGTH, fp) != NULL) { // 逐行读取文件内容
if (strstr(line, search_str) != NULL) { // 判断是否包含指定字符串
printf("%s", line); // 输出包含指定字符串的行
}
}
fclose(fp); // 关闭文件
return 0;
}
```
相关问题
用c语言实现在字符串中查找字符串并输出所查找的字符串的所在给定字符串的位置
你好,这是一个C语言代码示例,可以实现在字符串中查找指定字符串并输出该字符串在原字符串中的位置:
```
#include <stdio.h>
#include <string.h>
int main() {
char str[100], search[20];
int i, j, len1, len2, found;
printf("请输入原字符串:");
fgets(str, 100, stdin);
printf("请输入要查找的字符串:");
fgets(search, 20, stdin);
len1 = strlen(str);
len2 = strlen(search);
found = 0;
for (i = 0; i <= len1 - len2; i++) {
for (j = 0; j < len2; j++) {
if (str[i + j] != search[j]) {
break;
}
}
if (j == len2) {
found = 1;
printf("字符串 %s 的位置在:%d\n", search, i);
}
}
if (!found) {
printf("字符串 %s 未找到!\n", search);
}
return 0;
}
```
希望能帮到你!
用c语言将文件里的指定字符串替换成另一个字符串
我可以回答这个问题。您可以使用C语言中的fopen()、fread()、fwrite()和fclose()函数来打开、读取、写入和关闭文件。然后使用字符串替换函数(如str_replace())来替换指定的字符串。最后,将修改后的内容写回到文件中。