掲示板利用宣言

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

 私は

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

掲示板2

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

No.30350

文字列配列
投稿者---山男(2007/06/23 16:07:23)


初めまして。文字配列s に「ABCDEFG」という文字列が入っていたとすると,この文字列を反転させる「GFEDCBA」となるようなプログラミングを作ろうと思っています。void reverse(char *s);を使っていますが、こういったプログラムを作った事がないため苦戦しております。こちらで何か御享受頂けたらなと思ってお邪魔させて頂きました。


この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:文字列配列 30353 RAPT 2007/06/23 19:03:29
<子記事> Re:文字列配列 30354 Hermit 2007/06/23 20:39:07
<子記事> Re:文字列配列 30356 山男 2007/06/23 23:04:43
<子記事> Re:文字列配列 30357 επιστημη 2007/06/24 13:17:40
<子記事> Re:文字列配列 30359 かずま 2007/06/24 16:09:56
<子記事> Re:文字列配列 30391 山男 2007/06/27 15:53:47
<子記事> Re:文字列配列 30394 山男 2007/06/27 16:21:41
<子記事> Re:文字列配列 30402 山男 2007/06/28 14:22:19


No.30353

Re:文字列配列
投稿者---RAPT(2007/06/23 19:03:29)
http://blogs.wankuma.com/rapt/


1.自分が手作業でやるとしたらどうするか考える
2.それをコードに落とす
3.テスト
で完成です。


この投稿にコメントする

削除パスワード

No.30355

Re:文字列配列
投稿者---ホリー(2007/06/23 21:20:10)


配列の並び替えでできますよ
do{b[i]=a[2-i];なんとかなんとか
}while(a[i]='\0');
のようにして


この投稿にコメントする

削除パスワード

No.30361

Re:文字列配列
投稿者---TMC(2007/06/25 01:25:44)


>配列の並び替えでできますよ
>do{b[i]=a[2-i];なんとかなんとか
>}while(a[i]='\0');
>のようにして

自分の抱えている問題も自己解決できない内に、意味不明なことを教えようとしないでください。




この投稿にコメントする

削除パスワード

No.30354

Re:文字列配列
投稿者---Hermit(2007/06/23 20:39:07)


昔のコンパイラなら、strrev が入ってたんですけど、
最近のは無いみたいですね。
だから、strrev で検索すれば、出てくると思います。


この投稿にコメントする

削除パスワード

No.30356

Re:文字列配列
投稿者---山男(2007/06/23 23:04:43)


なるほど、参考にさせて頂きます。御親切に誠にありがとうございます。ここのホームページにお手本は見当たらないのですが、ないのでしょうか?とりあえず、皆様のコメントを参考に検索してみます。


この投稿にコメントする

削除パスワード

No.30357

Re:文字列配列
投稿者---επιστημη(2007/06/24 13:17:40)
http://blogs.wankuma.com/episteme


i = 0;
j = 文字列末尾の添え字(文字数がnならn-1)
while ( i < j ) {
 i番目とj番目を交換
 ++i;
 --j;
}

以上。



この投稿にコメントする

削除パスワード

No.30358

Re:文字列配列
投稿者---ホリー(2007/06/24 13:48:34)


/*TEN逆から書くとNETです.配列、\0(Nullに注意!!)  "for" or "while";*/
#include<stdio.h>
main()
{
char a[]="TEN"; /*NULL文字を含めて*//*\0で一文字*/
int i = 0;
char b[4];

while(a[i]!='\0')
{
b[i]=a[2-i]; /*添え字=要素数−1−NULL1*/
i++; /*while for では条件で使われた変数が変化すること*/
}
b[i]='\0'; /*NULL=1文字*/
printf("%sを逆から書くと%s\n",a,b);
}


この投稿にコメントする

削除パスワード

No.30362

Re:文字列配列
投稿者---acid(2007/06/25 11:30:13)


>b[i]=a[2-i];
変数aの長さが変わった時に書き換えないといけない。
>char a[]="TEN"; /*NULL文字を含めて*//*\0で一文字*/
このコメントを書くなら、変数の大きさを書かなきゃ意味が無いでしょ。
あと、while文ではなく、for文を使うべき。

サンプルとしては60点位。
字下げがしてないので、掲示板的には20点。

つかこれが出来て、下の課題ができないって…



この投稿にコメントする

削除パスワード

No.30359

Re:文字列配列
投稿者---かずま(2007/06/24 16:09:56)


参考にならないプログラムです。
#include <stdio.h>

int rev(char *s, int i)
{
    int n, c = s[i];
    return c ? (n = rev(s, i+1), s[n-i] = c, n) : i-1;
}

int main(void)
{
    char buf[1024];
    while (scanf("%s", buf) == 1) rev(buf, 0), puts(buf);
    return 0;
}



この投稿にコメントする

削除パスワード

No.30430

Re:文字列配列
投稿者---きゅー(2007/07/02 22:18:14)


>return c ? (n = rev(s, i+1), s[n-i] = c, n) : i-1;
「?」や「:」の使い方について教えてください。
どういう意味を表しているのでしょうか。
普通に書くとどうなるのでしょうか。



この投稿にコメントする

削除パスワード

No.30431

Re:文字列配列
投稿者---かずま(2007/07/02 23:31:54)


> 「?」や「:」の使い方について教えてください。
> どういう意味を表しているのでしょうか。

この掲示板のホームページに行き、「第14章 複雑な演算子」を見てください。


> 普通に書くとどうなるのでしょうか。
    if (c != '\0') {
        n = rev(s, i + 1);
        s[n - 1] = c;
        return n;
    } else
        return i - 1;



この投稿にコメントする

削除パスワード

No.30433

Re:文字列配列
投稿者---かずま(2007/07/03 11:14:34)


>       s[n - 1] = c;

訂正
        s[n - i] = c;

別解
    return c ? (n = rev(s, i+1), s[n] = c, n+1) : 0;



この投稿にコメントする

削除パスワード

No.30440

Re:文字列配列
投稿者---きゅー(2007/07/03 21:41:43)


説明、ありがとうございました。


この投稿にコメントする

削除パスワード

No.30391

Re:文字列配列
投稿者---山男(2007/06/27 15:53:47)


皆様、御協力誠にありがとうございます。私なりに少し作ってみました。

#include <stdio.h>
#include <string.h>

int main(void)
{
char a[]="ABCDEFG";
char b[10];
char c[10];
int i;

printf("もともとのa配列:a配列%s\n",a);

strcpy(b,a+6);
strcpy(c,b);
printf("b配列:%s c配列:%s\n",b,c);

for (i=5;i>=0;i--)
{
strcpy(b,a+i);
printf("a配列の%d番目以降をコピーしてできたb配列:%s\n",i,b);
b[1]='\0';
strcat(c,b);
printf("b配列:%s c配列:%s\n",b,c);
}

return 0;
}


如何でしょう?


この投稿にコメントする

削除パスワード

No.30394

Re:文字列配列
投稿者---山男(2007/06/27 16:21:41)


それと、strcpyやcharなどの意味は〜だという事が並んでいる場所を探しています。使う際にしっかり意味を理解したいのです。どこかご存知でしたら教えて頂けると光栄です。


この投稿にコメントする

削除パスワード

No.30396

Re:文字列配列
投稿者---MAX(2007/06/27 16:57:17)


googleで「strcpy」「char」で検索するといくらでも出てきますよ。

>それと、strcpyやcharなどの意味は〜だという事が並んでいる場所を探しています。


この投稿にコメントする

削除パスワード

No.30397

Re:文字列配列
投稿者---bugs(2007/06/27 19:04:07)


>それと、strcpyやcharなどの意味

1冊以上の入門書をお読みください。


この投稿にコメントする

削除パスワード

No.30402

Re:文字列配列
投稿者---山男(2007/06/28 14:22:19)


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


この投稿にコメントする

削除パスワード

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