ポインタを用いて文字列を逆順に格納

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
馬鹿太郎

ポインタを用いて文字列を逆順に格納

#1

投稿記事 by 馬鹿太郎 » 16年前

こんばんは、いつもお世話になっています。
さっそくですけど、このプログラムは文字型配列str1に"ABCDEFGHIJKLMN"という文字列が格納されています。
ポインタを二つ用いて、文字型配列str2に、この文字列を逆順に格納します。
#include <stdio.h>

int main(void)
{
    char str1[/url] = "ABCDEFGHIJKLMN";
    char str2[20];
    char *p1, *p2;
 
    p1 = str1;
    p2 = str2;

    while (*p1 != '\0') {
        p1++;
    }
    while (p1 > str1) {
        p1--;
        *p2 = *p1;
        p2++;
    }
    *p2 = '\0';
    printf("str1=%s\n", str1);
    printf("str2=%s\n", str2);

    return 0;
}
・while (p1 > str1)のp1とstr1は何を指しているのですか?
 p1がstr1より大きい間繰り返すというのは分かりますが、比較しているってことは、何か値みたいなものが
 あるのですか?

コスモ

Re:ポインタを用いて文字列を逆順に格納

#2

投稿記事 by コスモ » 16年前

rand関数の件はどうなりましたか?
先ずそれを訊きたいのですが。

BEMANI

Re:ポインタを用いて文字列を逆順に格納

#3

投稿記事 by BEMANI » 16年前

>>馬鹿太郎さん
str1[/url] = "ABCDEFGHIJKLMN"
p1 = str1
これが、str1 と p1の値です。

SCI

Re:ポインタを用いて文字列を逆順に格納

#4

投稿記事 by SCI » 16年前

一応補足ですが、str1は"ABCDEFGHIJKLMN"の格納されている配列の先頭の要素へのポインタなので、値は「アドレス」です。

それから質問者さん
自分の質問に答えさせる前に、他の人からの質問にも答えたらどうでしょう。

馬鹿太郎

Re:ポインタを用いて文字列を逆順に格納

#5

投稿記事 by 馬鹿太郎 » 16年前

すいません、cosmoさん
rand関数は理解できました。

box

Re:ポインタを用いて文字列を逆順に格納

#6

投稿記事 by box » 16年前

> それから質問者さん
> 自分の質問に答えさせる前に、他の人からの質問にも答えたらどうでしょう。

今の段階では敷居が高いかもしれないので、
レベルが上がってからで十分でありましょう。

non

Re:ポインタを用いて文字列を逆順に格納

#7

投稿記事 by non » 16年前

> > それから質問者さん
> > 自分の質問に答えさせる前に、他の人からの質問にも答えたらどうでしょう。
>
> 今の段階では敷居が高いかもしれないので、
> レベルが上がってからで十分でありましょう。

SCIさんが言っているのはboxさんが言われている意味とは、違いますよ。
他の人からの質問というのは、馬鹿太郎さんに対する回答者からの質問です。
質問者としての礼儀だと思います。

box

Re:ポインタを用いて文字列を逆順に格納

#8

投稿記事 by box » 16年前

>nonさん

私が、意味を取り違えていました。

閉鎖

“C言語何でも質問掲示板” へ戻る