【发布时间】:2019-02-09 20:19:55
【问题描述】:
试图修复这个程序,该程序比较通过 argv 找到的单词和来自 scanf() 的单词。如果找到相同的单词,则打印“CENSORED”,如果没有,则仅打印该单词。例如,我有一个名为 beatles.txt 的文件,其中包含以下单词: 保罗 林戈 乔治 约翰
如果我编译这个程序并像这样测试它: ./a.out ringo
审查 林戈 审查 林戈 审查 铃声
然而,我希望这是输出:
保罗 审查 乔治 约翰
这是我的代码:
int main(int argc, char* argv[]) {
char word_arr[10000][20];
int i=0;
while ( scanf("%s",word_arr[i])!=EOF) {
for (int i=1; i<argc; i++) {
if (strstr(word_arr[i],argv[i]) != NULL) {
printf("CENSORED\n");
}
else {
printf("%s\n",word_arr[i]);
}
}
i++;
}
return 0;
}
【问题讨论】:
-
离题。
-
内部
i正在遮蔽外部i。为其中一个标识符选择另一个名称。 -
请不要对发布的代码进行更正。它成为一个非问题。回滚。