我的目标是从stdin重定向的文件中读取文本,然后用单词“替换”替换某些argv传递的单词。C - 替换单词
例如,如果我跑:“测试取代一个”
$ ./a.exe line < input.txt
其中input.txt的是“测试线合一”,到了最后我要打印 我不太确定我的代码出错的地方,有时我会出现分段错误,而且我也不确定如何去打印newOut字符串,或者我甚至需要一个字符串。作为一个方面说明,如果我正在使用fgets进行读取,如果第59个字符开始“li”,然后又开始读取作为下一个读取命令“ne”的第0个索引时该怎么办。难道这不算作strstr搜索的一个字符串吗?
任何帮助表示赞赏,感谢
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char** argv) {
char fileRead[60];
char newOut[];
while (!feof(stdin)){
fgets(fileRead,60,stdin); //read file 60 characters at a time
if (strstr(fileRead,argv[1])){ // if argumentv[1] is contained in fileRead
strncpy(newOut, fileRead, strlen(argv[1])); // replace
}
}
return (0);
}
请粘贴实际代码先生,至少编译的东西 – 4pie0 2014-10-03 21:01:40
另请参见:[C - 一种更好的替换方法](http://stackoverflow.com/questions/26171698/c-better-method-for-replacing)由同一个用户。 – 2014-10-03 21:04:12
@JonathanLeffler,是的,我试着实现所提出的建议,并且不确定我要出错的地方。 – ImBadAtProgramming 2014-10-03 21:15:49