- 締切済み
セグメントエラー
#include <stdio.h> int find(char a[],int c) { int k,s,count; s = 0; k = 0; count = 0; while( a[k]!= 0 && a[k] != c) { s = a[k]; count = count + 1; k++; } if(a[k] = 0) return(-1); else return(count); } int main(void) { int d; d = 0; d = find("aaaas",'s'); printf("%d",d); return(0); } 文字列を検索するやつなんだけど セグメントエラーが出るんだけど どこが間違ってるか教えてください!
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- asuncion
- ベストアンサー率33% (2127/6289)
もっと簡単に書けます。 #include <stdio.h> int find(char a[],int c) { int k; for (k = 0; a[k] != '\0' && a[k] != c; k++) ; return (a[k] != '\0') ? k : -1; } int main(void) { printf("%d\n", find("aaaas", 's')); return 0; }
- SilverThaw
- ベストアンサー率32% (260/806)
>どこが間違ってるか教えてください! ここ >if(a[k] = 0)
お礼
上記はこっちでやるべきでしたね^^; 申し訳ないです よろしければもう少し詳しく教えてください よろしくお願いします
補足
回答ありがとうございますmom すいません・・・ 如何違うのか詳しく教えてくれませんか^^;
お礼
なるほど・・・こんな風にも書けるんですね 参考にします。 ところで間違いの箇所ですが =が一個足らなかったようで・・・ エラーが判明したので回答は打ち切ることにしました 回答してくださった方はありがとうございました。