C言語関係掲示板

過去ログ

No.943 半角スペースを全角スペースに変換したい

[戻る] [ホームページ]
No.12000

困っています。。
投稿者---初心者(2004/01/21 14:43:45)


半角スペースを全角スペースに変換したいのですが、
どのようにすればよいのでしょうか?
初心者で申し訳ありません。

「あいうえお^^^」
    ↓
「あいうえお△△△」

^ 半角スペース
 △全角スペース

以上 よろしくお願いします。m(__)m

No.12005

Re:困っています。。
投稿者---YuO(2004/01/21 16:41:53)


>半角スペースを全角スペースに変換したいのですが、
>どのようにすればよいのでしょうか?

とりあえず,いつものやつから。
「半角スペース」「全角スペース」って何ですか?

さらに,環境をちゃんと書かないと,「たぶんできる」程度の答えしか書けません。


>「あいうえお^^^」
>    ↓
>「あいうえお△△△」
> ^ 半角スペース
> △全角スペース

とりあえず,「バイト数」が変化して「文字数」が変化しないのだから,
mbstowcsでワイド文字列に変換した上で文字を置き換えた後,
wcstombsで多バイト文字列に戻せばよいのでは?


No.12070

Re:困っています。。
投稿者---かずま(2004/01/23 14:30:01)


【掲示板ご利用上の注意】
題名は具体的にお願いします。
入出力での変換なら、

    int c;

    while ((c = getchar()) != EOF)
        if (c == ' ')
            fputs(" ", stdout);
        else
            putchar(c);


文字列での変換なら、

void conv(const char *s, char *t)
{
    int c;  static char z[] = " ";

    while ((c = *s++) != 0)
        if (c == ' ')
            *t++ = z[0], *t++ = z[1];
        else
            *t++ = c;
    *t = 0;
}