c言語です。以下のようにプログラムしたのですが、「Segmentation fault (core dumped)」という実行エラーが出てしまいます。どのように直せばいいか教えてください。

補足

#include <stdio.h> int main() { char in[80],c; int suji,alpha,other,i; i=suji=alpha=other=0; char alpha00[80]; printf("Please input =>"); do{ c=getchar(); in[i]=c; i++; alpha00[alpha]=c; }while(c != '\n'); for(i=0;i<80;i++){ 略 } alpha00[alpha]='\0'; printf("%d\n", *alpha00) ; pr~

ベストアンサー

1

1人がナイス!しています

ありがとうございます!改行文字を入力することでエラーは解消されました! しかし、以下の3文以外にこれらを追加して完成させたいです。 入力を「yuTU800」としたところ、なぜか出力は Please input =>121 suji = 3 alpha = 10 other = 2 と、inputはよくわからない数字でalphaが大きくなってしまいました。何がいけないんでしょうか、、、? char alpha00[80]; alpha00[alpha++]=c; alpha00[alpha]='\0';

ThanksImg質問者からのお礼コメント

できました!丁寧にありがとうございました!!

お礼日時:7/4 16:19

その他の回答(1件)

0

(なさん) とりあえずは動作しているようです Segmentation faultは80文字以上入力したからでは? 80文字以上入力出来ないようにしておく方がいいですね。 以下のコードは何なのかな? char alpha00[80]; alpha00[alpha++]=c; alpha00[alpha]='\0';

回答ありがとうございます。 6文字しか入力してなくてもエラーが出てしまいます。 char alpha00[80];   ・・・① alpha00[alpha++]=c; alpha00[alpha]='\0'; は入力した文字も出力させるためにどこかに入れたいです。 ①の文は i=suji=alpha=other=0; の後に入れ、 printf("%d\n", *alpha00) ; を追加する必要があるのかなと今思ったところです。