単語と単語を検索する文字の2つの引数を持つ関数を作成しようとしています。C - 単語内の文字を検索する
実際には、各文字が配列の要素である配列です。単語 "word"の場合、次のようになります。 word = [w、o、r、d]
したがって、私は文字に[]ワードの各要素を比較する必要があり、それらが機能に一致する場合は1を返す必要があり、そうでなければ0 コードは、以下である:
char ltt_srch(char word[], char ltt)//LINE 13
{
int len, i;
len = sizeof(word)/sizeof(word[0]);
for(i = 0; i < len; i++)
{
if(ltt == word[i])
{
return 1;
}
}
return 0;
}
私はltt_srch
を呼び出します具体的には、
if(ltt_srch(word[len], ltt) == 0)//LINE 51
{
printf("Letter not found.\n");
}
が、私は1つの警告と1つのノートを取得:メインこのコードを使用して
Line 13: [Note] Expected 'char *' but argument is of type 'char'
Line 51: [Warning] passing argument 1 of 'ltt_srch' makes pointer from integer without a cast
あなたはltt_searchとしてltt_search呼び出すと思ったほとんどの場合(ワード、LTT)は(言葉をltt_srchない[LEN]を、 ltt) –
あなたの関数は配列を期待していますが、 'char'を送信しています。あなたの 'if'では、' word [len] 'を単に' word'に変更します。 – Aidin
バイナリ検索を使ってこの関数の速度を 'O(N)'から 'O(logN)'に改善することができます。 – RoadRunner