はじめての C

与えられた文字列を ポインタを用いて逆さに出力するプログラムを for文を使って作成せよ。

できませんでした . . .
おしまい。


気をとりなおして、

整数のアドレスを求めるプログラムを作成せよ。

  1. /* access */
  2. #include
  3. main()
  4. {
  5. int a;
  6. int *p;
  7. /* ポインタの宣言、実体はアスタリスク抜きの p */
  8. p = &a;
  9. /* アドレスの安全な格納がポインタの絶対条件 */
  10. printf("address of a : %u\n", p);
  11. /* %u は符号無しの整数値 */
  12. }

整数のアドレスと値を表示するプログラムを作成せよ。

  1. /* access.2 */
  2. #include
  3. main()
  4. {
  5. int a = 2;
  6. int *p;
  7. p = &a;
  8. printf("address of a : %u\n", p);
  9. printf("value of a : %d\n", *p);
  10. /* この *p は間接参照演算子 */
  11. }

間接参照演算子を変更することで 整数の値を変えるプログラムを作成せよ。

  1. /* access.3 */
  2. #include
  3. main()
  4. {
  5. int a = 1;
  6. int *p;
  7. p = &a;
  8. printf("value of a : %d\n", a);
  9. *p = 2;
  10. printf("value of a : %d\n", a);
  11. }

ポインタに文字列を代入するプログラムを作成せよ。

  1. /* string */
  2. #include
  3. main()
  4. {
  5. char *p;
  6. /* 文字型のポインタの宣言 */
  7. p = "abcde";
  8. printf("address of p : %u\n", p);
  9. printf("value of p : %s\n", p);
  10. /* 間接参照演算子 *p は使わない */
  11. }

配列を使用して 文字列を代入するプログラムを作成せよ。

  1. /* string.2 */
  2. #include
  3. main()
  4. {
  5. char s[] = "abcde";
  6. printf("address of s : %u\n", s);
  7. printf("value of s : %s\n", s);
  8. }

配列を使用し for文を使って 文字列を表示するプログラムを作成せよ。

  1. /* calcstr */
  2. #include
  3. main()
  4. {
  5. char s[] = "abcde";
  6. char *p;
  7. for ( p = s ; *p != '\0' ; p++ ) {
  8. /* '\0' は文字列の終わりをあらわす */
  9. putchar(*p)
  10. /* putchar は文字を標準出力する関数 */
  11. }
  12. printf("\n");
  13. }

スペースをコロンに変換するのと 小文字を大文字に変えるのとは これの応用ですネ。

最初の設問で ただ文字列のX番目の文字を表示するだけなら簡単なんだけど . . .

  1. /* lastwd */
  2. #include
  3. main()
  4. {
  5. char *p;
  6. p = "abcde";
  7. printf("last of word : %c\n", *(p + 4));
  8. }

text: 金山典世さん(稚内北星)のページ