「入力された文字列を、英字、数字、その他に分けて出力せよ」このような問題が学校で出題されました。学校の先生に質問してみたところ、原因はわからないからやらなくていいと言われてしまったのですが、納得もいかないので質問をさせていただきました。プログラムは此方です。while文では、文字が英字、数字、その他のどれなのかを識別し任意の配列に仕分けしていく。仕分けされた英字、数字、その他の3種の配列の中身を表示する。文字の要素を調べる関数は使わないつもりで考えています。入力してみたところこのような結果になりました。いう文字が入ってしまっているように見受けられます。いう文字は何が原因なのか全くわかりません。調べたり、プログラムを分割して動作させてみたりしたのですが、結局何処が原因になっているのかわかりませんでした。お手数をお掛けしますが、ご教示頂けませんでしょうか。7年前C/C++言語で言う文字列とは何か?終端文字で終わる文字の配列。この、終端文字というのが掲示されているソースでは代入されてませんよね。結果としては当然です。C/C++言語では初期化していないと何が入っているか分からないのです。文字を入れた後、その次の位置に0を代入(=終端文字を代入)するかです。なってるのも変だよね。入力された文字列を英字、数字、その他で分けて表示するプログラム解答有難うございます。オアになっていたの、気づきませんでした。ありがとうございます。アンドになおしておきました。終端文字は自動でつくものだと勘違いしておりました...。入力された文字の長さを取得し、その数+1のところに終端文字を入れるようにプログラムを書き換えたのですが、正常に動きませせん。入力された文字の長さを取得し、その数+1のところに終端文字を入れるようにプログラムを書き換えたのですが、正常に動きませせん。入力された文字列に入れてどうすんねん。printfに渡している変数は何だ?それに対して終端文字を入れなきゃ。kそれぞれが終端文字を書く位置になってるよ。入力された文字の長さを取得し、その数+1のところに終端文字を入れるようにプログラムを書き換えたのですが、正常に動きませせん。入力された文字列に入れてどうすんねん。printfに渡している変数は何だ?それに対して終端文字を入れなきゃ。kそれぞれが終端文字を書く位置になってるよ。scanfで入力を求めたものにも、終端文字を自分で入れないといけないのかと思ってしまいました...。表示する配列は、最初カラの状態で一文字づつ代入していったので終端文字が自動で付くわけもないですね。当たり前のことに気づけなくてすみません。処理が数字以外の場合全て代入されてしまうということにも気づきました。ありがとうございました。ミクプラは自由にリンクできます。