次のプログラムは、多次元配列を検索する必要があります。入力としてtown
という単語を入力すると、Track 1: Newark,Newark-A Wonderful Town
が返されますが、何も出力されません(何も起こりません)。Cプログラミング。なぜこれは機能しませんか?
私はヘッドファーストC本に取り組んでいます。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/* Run this program using the console pauser
or add your own _getch, system("pause") or input loop */
char tracks[][80]={
"I Left My Heart In Harvard Med School",
"Newark,Newark-A Wonderful Town",
"From Here to Maternity",
"The Girl From Iwo Jima",
};
void find_track(char search_for[]){
int i;
for (i=0;i<=4;i++){
if(strstr(tracks[i],search_for)){
printf("Track %i:'%s' \n",i,tracks[i]);
}
}
}
int main(int argc, char *argv[]) {
char search_for[80];
printf("Search for: ");
fgets(search_for,80,stdin);
find_track(search_for);
return 0;
}
'Town'!=' town'。 – Amy
どちらもうまくいきません –
@光量子最初のコメントで指摘されていることとは別に、マニュアルの 'fgets'をチェックしてください。あなたが望むものではない改行文字も読みます。 – sjsam