我的目標是從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