char str[20]="HELLO"; for(int i=0;str;i++){ str=tolower(str); }
という関数をポインタに書き換えたものを教えて下さい。
配列はわかりやすいんですがポインタはいま1つで・・
お手数ですがお願いします。何回かポインタについて質問させてもらってるんですけど
中々理解できなくて1つ見本を見せてもらったほうがいいと思いました。
char str[20]="HELLO"; char *p = str; for(; *p ;p++){ *p = tolower(*p); }
#include <stdio.h> void main() { int a[10], i; for( i=0; i<10; i++ ) a = i; printf( "配列版\n" ); for( i=0; i<10; i++ ) printf( "ADDRESS:%8d = %d\n", &a, a ); printf( "ポインタ版\n" ); int *p; for( p=a; p!=&a[10]; p++ ) printf( "ADDRESS:%8d = %d\n", p, *p ); }
> printf( "ADDRESS:%8d = %d\n", &a, a ); > printf( "ADDRESS:%8d = %d\n", p, *p ); ポインタ値を出力する際の書式文字列は、"%p"です。 整数値を前提としていると、何かまずいことが起きるかもしれませんし、起きないかもしれません。