C プログラミング コースで C の演習を行っています。テキスト ファイルからリンクされたリストにデータを読み取り、一致するものを探してから、結果を出力する必要があります。
テキストファイルの例:
"Apple/Orange",1
"Banana/Watermelon/Lemon",2
"Watermelon/Strawberry",3
"Orange/Grape/Watermelon",4
"Blueberry", 5
fgets()、sscanf()、および void 関数を使用してリンク リストに格納したため、文字列は引用符で始まります。
問題は、strncmp() を使用して文字列から単語を検索しようとしたときに、引用符が原因で機能しなかったことです。
私は次のようなことをしました:
void findFruits(List *list){
Node *position = list->first;
while(position != NULL){
if(strncmp(position->fruits, "Watermelon", 10)==0){
printf("%s, %d\n", position->fruits, position->number);
}
position = position->next;
}
文字通り、引用符で始まる文字列から正確な単語を見つける手がかりがありません。助けていただければ幸いです。
Barmarのアイデアのおかげで、今解決しました。strncmp() の代わりに strstr() を使用しようとすると、完全に機能しました。
if(strstr(position->fruits, "Watermelon")){
printf("%s, %d\n", position->fruits, position->number);
}