プログラム起動時に入力された複数個のプログラム仮引数の文字数('\0'除く)を数え、例のように文字列と共に表示するプログラムを作成せよ。
なお、プログラムは次の2つの関数を含めること。
1. 文字数を数える関数
1つの文字列へのポインタを受け取り、文字数を返す。
2. 文字列を表示する関数
1つの文字列へのポインタを受け取り、これを表示する。
★表示例
n = 5 tokyo
n = 9 shinbashi
n = 9 shinagawa
n = 8 kawasaki
n = 8 yokohama
★解答
#include <stdio.h>
int cal_char(char *);
void char_print(char *,int);
int main(int argc,char **argv)
{
int n;
for(argv++;*argv != NULL; argv++){
n = cal_char(*argv);
char_print(*argv,n);
}
}
int cal_char(char *pa)
{
int i;
for(i=0;*pa != '\0'; i++,pa++); //文字列の最後にはナル「\0」が入るのでこれは数えない
return i;
}
void char_print(char* pa,int n)
{
printf("n = %2d %s\n",n,pa);
}
"**argv //+1しておいて、次がNULLじゃないか確認。"
↓
"*argv //argvが空っぽだとNULLを返す。"
↓
"argv //実際にchar配列が入っている。文字列の最後には\0が存在。"
最終更新:2010年12月04日 22:00