【发布时间】:2014-03-06 09:20:25
【问题描述】:
我正在尝试使用 sys 调用进行子字符串搜索,在该调用中我从命令行打开文件,并将以下命令行参数与文件进行比较。我想输出每个子字符串的出现次数。例如,如果我写了 ./a.out 文件名 aa b 我正在寻找 aa 和 b 在文件名中出现的次数。
到目前为止我的代码
for(int num = 4; num < argc; num++)
{
int fp = open (argv[1], O_RDONLY);
int sizeofbar = strlen(argv[1]);
char *buf = (char*)malloc(sizeofbar+1);
int count = 0; //counter for output
char* string2 = argv[num];
int sizeofcompare = strlen(string2);
read(fp, buf, sizeofcompare);
while (strstr(buf, string2) != NULL)
{
count++;
buf++;
}
【问题讨论】: