C言語なら俺に聞け(入門篇) Part 8
■ このスレッドは過去ログ倉庫に格納されています
0441デフォルトの名無しさん
2007/02/27(火) 18:01:31#include <ctype.h>
int main(void)
{
char str[80], *p;
printf("文字列を入力してください:");
gets(str);
p=str;
while(*p) {
*p++ = toupper(*p);
}
printf("%s\n", str); /* 大文字の文字列 */
return 0;
}
実行結果 hiro→HIRO
参考書のとおりにやったんですが、僕は実行結果がhIROになるとおもってました。
なぜかというと最初のp=strでstr[0]のアドレスがpに入りますよね。でwhileループで
一番最初に*p++ = toupper(*p)としていますが、この一文は最初にp++でpをインクリメントしてしまい
pはstr[1]を指し、str[0]を飛ばしてしまうとおもったのですが・・
わかりません。よろしくお願いします。
■ このスレッドは過去ログ倉庫に格納されています