用C++编一查找给定字符串程序,要求输出给定字符串在文件中的出现的行数,第一个字符在此行中的位置。应区分给定字符串本身构成一个字和作为另外一个字的子串两种情况
时间: 2023-02-13 13:57:12 浏览: 76
C语言中查找字符在字符串中出现的位置的方法
这是一个查找给定字符串在文件中出现的行数和位置的 C 程序。程序应该首先读取文件,然后搜索给定字符串。如果找到了给定字符串,则应输出行号和字符串在该行的第一个字符的位置。
建议的程序框架如下:
```
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[]) {
// 首先检查命令行参数是否正确
if (argc != 3) {
printf("Usage: search string filename\n");
return 1;
}
// 然后打开文件
FILE *fp = fopen(argv[2], "r");
if (fp == NULL) {
printf("Error: unable to open file %s\n", argv[2]);
return 1;
}
// 读取文件的每一行,并检查是否包含给定字符串
char line[1024];
int lineNumber = 0;
while (fgets(line, sizeof(line), fp) != NULL) {
lineNumber++;
// 检查字符串是否是该行的子串
if (strstr(line, argv[1]) != NULL) {
// 如果找到了,输出行号和第一个字符的位置
printf("Line %d: %s", lineNumber, line);
}
}
// 关闭文件
fclose(fp);
return 0;
}
```
请注意,这是一个简单的程序框架,您可能需要对其进行修改以满足您的具体需求。例如,您可能希望在输出中显示字符串在行中的实际位置,或者您希望区分给
阅读全文