課題4
下記に、文字列を1文字ずつ表示させるプログラムが示されている。この プログラムをpointer4.cとして書き、正しく実行されることを確認せよ。 また、配列の課題5の プログラムとの違いを確認せよ。
#include <stdio.h> int main(void) { char name[] = "Wakaba-ku"; char *p; for(p=name; *p != '\0'; p++){ printf("%c\n", *p); } return 0; }
(実行結果) % ./a.out W a k a b a - k u
課題5
下記に、文字列の長さを表示させるプログラムが示されている。この プログラムをpointer5.cとして書き、正しく実行されることを確認せよ。 また、配列の課題6の プログラムとの違いを確認せよ。
#include <stdio.h> int main(void) { char name[] = "Wakaba-ku"; char *p; int n=0; for(p=name; *p != '\0'; p++){ n++; } printf("n = %d\n", n); return 0; }
課題6
任意の長さの文字列(ここでは英数字の文字列とする)を入力させ、下記の実行例の ように先頭の1文字が順々に削除されて表示させたい。そのためのプログラムを 下記に用意したが一部が"******"で隠されている。それを補って、プログラムを pointer6.cとして完成させ、正しく実行されることを確認せよ。当然であるが、表示 されている"*****"の行数は適当であるため、参考にならない。
#include <stdio.h> int main(void) { char moji[20], *pmoji; printf("10文字程度の英数字の文字列を入力してください(スペースなしで)\n"); scanf("%s",moji); /* ポインタに文字列のアドレスを代入 */ ***************************** ***************************** /* 文字列表示(先頭の1文字が順々に削除) */ ***************************** ***************************** ***************************** ***************************** ***************************** return 0; }
(実行例:赤字が入力文字) hp3225[susaki]501:~/program% hp3225[susaki]501:~/program% ./a.out 10文字程度の英数字の文字列を入力してください(スペースなしで) abc12345defg abc12345defg bc12345defg c12345defg 12345defg 2345defg 345defg 45defg 5defg defg efg fg g hp3225[susaki]502:~/program%
課題7
任意の長さの文字列(ここでは英数字の文字列とする)を入力させ、下記の実行例の ように末端の1文字から順々に表示させたい。そのためのプログラムを 下記に用意したが一部が"******"で隠されている。それを補って、プログラムを pointer7.cとして完成させ、正しく実行されることを確認せよ。
#include <stdio.h> int main(void) { int i, length; char moji[20], *pmoji; printf("10文字程度の英数字の文字列を入力してください(スペースなしで)\n"); scanf("%s",moji); /* ポインタに文字列のアドレスを代入 */ ***************************** ***************************** /* 文字列表示(末端の1文字から順々に表示) */ ***************************** ***************************** ***************************** ***************************** ***************************** ***************************** ***************************** ***************************** ***************************** return 0; }
(実行例:赤字が入力文字) hp3225[susaki]501:~/program% hp3225[susaki]501:~/program% ./a.out 10文字程度の英数字の文字列を入力してください(スペースなしで) TokyoJoho o ho oho Joho oJoho yoJoho kyoJoho okyoJoho TokyoJoho hp3225[susaki]502:~/program%