文字列

問1 文字型とASCIIコード1

01.cを修正し、文字とASCIIコードの対応表を表示するプログラムを作成しなさい。 対応表は'A'から'z'を表示しましょう。 なお、ASCIIコードの小さい'A'は65、最大は'z'です。 表示は以下のように、1行1ペアとしてください。

A:65
B:66
C:67
...
...
z:122

問2 文字列でのfor文の使い方

02.cを修正し、

Hello, world!

と表示させましょう。

Note

ただし、%sは使ってはいけません。 ヒント:文字列の終端はNULL文字です。

問3 配列としての文字列

03.cを修正し、

NEW YEAR 2023

と表示しましょう。

!! Note ヒント:文字列はchar型の配列といえるので、文字列中の個々の文字は添字によりアクセス可能です。

問4 文字列のコピー

04.cを修正し、プログラム引数として入力されたアルファベットで構成される文字列2つを1つの配列に連結し、 表示するプログラムを作成しましょう。

ただし、それぞれの文字列は128文字以内とします。

Note

ヒント:一方のNULL文字のところから順に、もう一方の配列の内容を代入します。 また、文字列の最後にはNULL文字を入れる必要があります。

問5 文字列を逆順に出す

05.cを修正し、プログラム引数として入力されたアルファベットからなる文字列1つを、 入力した順と逆順に表示されるプログラムを作成しましょう。

ただし、文字列の長さは256文字までとします。

Note

ヒント:文字の終わりはNULL文字なので、そのインデックスがわかれば文字列の終端がわかります。

問6 文字列の配列

06.cを修正して、プログラム引数として入力されたアルファベットからなる文字列2つをA、Bとします。 Aのうち、Bに出てくる文字を除いた文字列を表示しましょう。

例として、

./a.out abcdefg bdfhj

と実行すると

aceg

と表示されます。

Note

ヒント:2つの文字列の比較は、各要素を総当たりで調べるといいです。

問7 文字列の配列と添字

07.cを修正して、プログラム引数として入力された年(1583年以降)、月、日に対応する曜日を表示するプログラムを作成しましょう。

なお、本プログラムでは、ツェラーの公式にて曜日を求めます。

この方法の結果が、0ならば土曜日、1ならば日曜日、2ならば月曜日、3ならば火曜日、4ならば水曜日、5ならば木曜日、6ならば金曜日となります。

ツェラーの公式は07.c中ですでに実装され、その結果は変数hへ入るようにしています。

また、表示は、日曜なら"SUN"、月曜なら"MON"、火曜なら"TUE"、水曜なら"WED"、木曜なら"THU"、金曜なら"FRI"、土曜なら"SAT"としましょう。

例として、

./a.out 2023 1 16

と実行すると

WED

と表示されます。

Note

ヒント:文字列配列をどのように初期化するか。 参考:ツェラーの公式

問8 文字列

08.cを修正して、プログラム引数として入力された文字列の中で一番使われている文字を返すプログラムを作りましょう。 ただし、入力される文字列はaからzまでとします。

例えば、

./a.out azzz

と実行すると、

z

と表示されます。

問9 ポインタによる文字列配列

09.cを修正し、入力された複数の文字列を表示するプログラムを作成しましょう。

例えば、

./a.out ONE TWO THREE

として実行すると

ONE
TWO
THREE

と表示されます。

Note

ヒント:入力された引数の数はargc変数に格納されます。ただし、引数にはプログラム名も含まれることを注意してください。

問10 ポインタを用いた文字列配列における入れ替え

10.cを修正し、入力された複数の文字列を入力順序を1つローテーションした結果を表示するプログラムを作成しましょう。

例えば、

./a.out ONE TWO THREE

とすると、

TWO
THREE
ONE

と表示します。