課題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%