掲示板利用宣言

 次のフォームをすべてチェックしてからご利用ください。

 私は

 題名と投稿者名は具体的に書きます。
 課題の丸投げはしません。
 ソースの添付は「HTML変換ツール」で字下げします。
 返信の引用は最小限にします。
 環境(OSとコンパイラ)や症状は具体的に詳しく書きます。
 返信の付いた投稿は削除しません。
 マルチポスト(多重投稿)はしません。

掲示板2

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧

No.28561

ポインタ
投稿者---ゴウ(2006/10/25 17:31:14)


while(*p)のところで、*pには何が入ってますか?
strそのものを指してしますか?



#include<stdio.h>
#include<ctype.h>
int main(void)
{
    char str[80];
    char *p;

    printf("文字列を入力して下さい");
    gets(str);
    p=str;
    
    while(*p){
        *p=toupper(*p);
        p++;
    }
    
    printf("%s\n",str);
    p=str;
    
    while(*p){
        *p=tolower(*p);
        p++;
    }
        printf("%s\n",str);
        
                

return 0;
}



この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:ポインタ 28562 Blue 2006/10/25 17:51:11


No.28562

Re:ポインタ
投稿者---Blue(2006/10/25 17:51:11)


char型の値つまり、getsで取得した文字コードです。
getsは文字列の終端に '\0' をつけるので、*p とすることで、文字コードの 0('\0')がくるまで
ループするようになっています。



というか、こういうのは試しにプログラムを書いてみればいいのではと思うんだけど。
#include<stdio.h>
#include<ctype.h>

int main(void)
{
    char str[80];
    char *p;
    int i = 0;

    printf("文字列を入力して下さい");
    gets(str);
    p=str;

    printf("大文字変換前−−→ %s\n",str);
    
    printf( "\n" );
    while(*p){
        printf("%dバイト目:%02x\n", ++i, (unsigned char)*p);
        *p=toupper(*p);
        p++;
    }
    printf( "\n" );
    
    printf("大文字変換後−−→ %s\n",str);

    return 0;
}



この投稿にコメントする

削除パスワード

No.28563

Re:ポインタ
投稿者---ゴウ(2006/10/25 18:12:08)


>getsで取得した文字コードです。

どうも丁寧にありがとうございました。
サンプルの書き方も参考になりました。

どうもありがとうございました。





この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧