2017-03-26 6 views
0

strstrが "house"という文字列を見つけるたびに、変数houseTotを1ずつインクリメントしたいと思っています。私は基本的に私のコードでこれをやった:strstrが指定された文字列を見つけたときに変数をインクリメントする方法

struct Owner1_def 
{ 
    int totProps; 
    char type[40]; 
    float monthlyPrice; 
    float maintenance; 
    int bedrooms; 
    int bathrooms; 
}; 
typedef struct Owner1_def Owner1; 
int main(void) 
{ 
char *ptr; 
int i = 0; 
ptr = strstr(database[i].hometype, "house"); 
for(i = 0; i <= 3; ++i) 
{ 
if (ptr != NULL) 
    houseTot++; 
} 
return 0; 
} 

をしかし、プログラムが印刷さhouseTotの値は、それはそれは値0に初期化されますではまだだとき、私ははstrstrについて多くを知らないが、私は何を読んでから、これはうまくいくはずです。

+1

それ以上のコードを提供する必要があります。 https://stackoverflow.com/help/mcve –

+4

'strstr()'への呼び出しをループの中に入れてはいけませんか?この実際のコードですか? –

+0

@DavidBowlingそれは私の問題を解決しました。 strstr()は全く新しいものであり、私が見たすべての例はどのようなループでも使用していなかったので、推測しました、ありがとう! – Boo92

答えて

0

database[i].hometypeに格納された値は、各反復で確認できるように、strstr()の呼び出しがループの内側に移動する必要がありますコードを掲載

for(i = 0; i <= 3; ++i) { 
    ptr = strstr(database[i].hometype, "house"); 
    if (ptr != NULL) 
     houseTot++; 
} 

struct S database[]のアレイのための定義を持っていません、提供されるstructにはhometypeフィールドがありません。

関連する問題