質問概要
課題にて『ポインタのポインタを利用し、文字列の長さをカウントしその文字数を表示しなさい』というものが出ました。
ライブラリ関数<string.h>を利用したらできたのですが、ポインタのポインタを利用していなかったので一から書き直しました。しかしながら、予想した結果とは違う結果が出てしまいました。
今までポインタのポインタを習ったことがなかったため、使い方があっているのかがよくわかりません。
結果が
red 3 blue 4 yellow 6 green 5 black 5 white 5
となるためにはどうすればよいのでしょうか?
拙い説明ですがよろしくお願いします。
ソースコード
C
1#include <stdio.h> 2 3int main(void){ 4 char str[6][10]={"red", "blue", "yellow", "green", "black", "white"}; 5 char (*ptr)[10]; 6 char (**pp)[10]; 7 int i, j, num[6]={0}; 8 9 //strのポインタを代入 10 ptr = str; 11 12 //ポインタptrのポインタppに代入 13 pp = &ptr; 14 15 //指定した文字の文字数をカウント 16 for(i=0; i<6; i++){ 17 printf("%s\n", (*pp)[i]); 18 for(j=0; (*pp)[i][j] != '\0'; j++){ 19 num[j]++; 20 } 21 } 22 23 //各文字の文字数を表示 24 for(i=0; i<6; i++){ 25 printf("%d\n",num[i]); 26 } 27 28 return 0; 29} 30
実行結果
red 6 blue 6 yellow 6 green 5 black 4 white 1
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/21 01:07