• 締切済み

セグメントエラー

#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); } 文字列を検索するやつなんだけど セグメントエラーが出るんだけど どこが間違ってるか教えてください!

みんなの回答

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.2

もっと簡単に書けます。 #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; }

asadasaba
質問者

お礼

なるほど・・・こんな風にも書けるんですね 参考にします。 ところで間違いの箇所ですが =が一個足らなかったようで・・・ エラーが判明したので回答は打ち切ることにしました 回答してくださった方はありがとうございました。

回答No.1

>どこが間違ってるか教えてください! ここ >if(a[k] = 0)

asadasaba
質問者

お礼

上記はこっちでやるべきでしたね^^; 申し訳ないです よろしければもう少し詳しく教えてください よろしくお願いします

asadasaba
質問者

補足

回答ありがとうございますmom すいません・・・ 如何違うのか詳しく教えてくれませんか^^;

関連するQ&A