char文字列に1byte文字を入れる方法

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
honda

char文字列に1byte文字を入れる方法

#1

投稿記事 by honda » 13年前

以下の仕様で文字列に文字を入れようとしているのですが、
エラーはないのですが実行時にプログラムが停止してしまいます。
pre_codeには1番目から順にA, B, ....
ter_code_にも同様にa, b, ....
と文字を格納していきたいです。
何がいけなくてプログラムが停止してしまうのでしょうか。

コード:

int j=1;
int k=1;
int jid[30]={0};
int kid[50]={0};
char pre_code[50]={'\0'};   
char ter[250][128]={'\0'};     
char ter_code[300]={'\0'}; 
char large = 65;
char small = 97;
      
for(i=1;i<6;i++){
            jid[j]++;
            pre_code[j]=large;
            printf("j:%d<br>", jid[j]);
            printf("pre_code:%s<br><br>", pre_code[j]);
            large++;
           // j++;
 
  
            kid[k]++;
            ter_code[k]=small;
            printf("k:%d<br>", kid[k]);
            printf("ter_code:%s<br><br>", ter_code[k]);
            small++;
        //k++;
}
    

box
記事: 2002
登録日時: 15年前

Re: char文字列に1byte文字を入れる方法

#2

投稿記事 by box » 13年前

コードを載せる際は、回答しようとする側で何も手を加えずに
コンパイル~実行ができるよう、main関数などを含めてくださると大いに助かります。
さて、
honda さんが書きました: エラーはないのですが実行時にプログラムが停止してしまいます。

コード:

char pre_code[50]={'\0'};   
char ter_code[300]={'\0'}; 
            printf("pre_code:%s<br><br>", pre_code[j]);
            printf("ter_code:%s<br><br>", ter_code[k]);
char型の情報を出力する際の書式文字列が%sというのは、正しいでしょうか。
char *型ならば%sでいいと思います。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

フィア

Re: char文字列に1byte文字を入れる方法

#3

投稿記事 by フィア » 13年前

charでいいのなら

printf("pre_code:%s<br><br>", pre_code[j]);

printf("pre_code:%c<br><br>", pre_code[j]);

23行目も同様に

%s を%c に変えて見ては?

閉鎖

“C言語何でも質問掲示板” へ戻る