0
我的程序應該採用任意數量的單字文本字符串參數,每個字符長度不超過128個字符。它將stdin中的任何文本複製到標準輸出中,除了輸入中看到的任何單詞都用單詞CENSORED替換。到目前爲止它有點作品。關於如何修復它的任何想法?在STDIN中發現的審查單詞和打印到STDOUT不起作用
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main(int argc, char* argv[]){
char word[128];
int index = 0;
int c = getchar();
while (c != EOF){
//checks for letter and adds to word[]
if ((c>='A' && c<='Z') || (c>='a' && c<='z') || c == '\''){
word[index] = (char)c;
index++;
word[index] = '\0';
}
//when c is not a letter or ' (end of word)
else{
if (index > 0){
int found;
for (int i=1;i<argc;i++){
//if word[] is found in input censor it
if (strcmp(word,argv[i]) == 0){
printf("CENSORED");
found = 1;
break;
}
}
//prints word[] if it's not in input
if (found != 1){
printf("%s",word);
}
}
//resets word[] and index/prints value of c
word[0] = '\0';
index = 0;
printf("%c",(char)c);
}
//increment c
c = getchar();
}
}
歡迎來到堆棧溢出!這聽起來像你可能需要學習如何使用[調試器](https://en.wikipedia.org/wiki/Debugger)來遍歷你的代碼。使用一個好的調試器,您可以逐行執行您的程序,並查看它與您期望的偏離的位置。如果你打算做任何編程,這是一個重要的工具。進一步閱讀:[如何調試小程序](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)。 –
你說它有效,你需要什麼樣的修復?請編輯你的問題並描述問題。 –