2017-10-07 18 views
0

解決策が私にとって意図したとおりに機能しなかったので、私は質問を編集しました。何らかの種類のif文や他のコードを記述することは可能ですか?入力された文字列がその構造体配列に存在しないときにエラーメッセージを出力しますか?エラーメッセージが表示された後、再び文字列を要求します。私はしばらくの間試してきましたが、それを正しいものにすることはできません。構造体配列の文字列を検索しています

int ordet=0; char_sokafras[20]; 
printf("Name?\n"); 
scanf("%s", soka_fras); 
while(ordet<*num_items) 
{ 
if(strstr(varor[ordet].name, soka_fras)) 
{ 
printf("Name found!\n"); 
soka[hitta_tecken]=varor[ordet]; 
hitta_tecken+=1; 
} 
ordet+=1; 
} 
+1

あなたは[ドキュメント](http://man7.org/linux/man-pages/man3/strstr.3を読みました。 html)? – alk

+0

質問が不明です。たとえば、コードで別の文字列を入力するかどうかを指定しますか? – user3629249

答えて

1

strstrは、haystackの部分文字列の先頭を指すポインタを返します。マンページから:

針が空文字列の場合、haystackが返されます。針が干し草のどこにもない場合、NULLが返されます。さもなければneedleの最初の出現の最初の文字へのポインタが返されます。

これまで、whileループは十分なはず改正:

while (strstr(varor[i].name, soka_fras) != NULL) 
+0

@ M.Mが修正されました(複数の文字が必要です) – Carey

関連する問題