Entry

プログラミングメモ - 中途半端にケブンッリジ関数とか

2009年05月14日

なんか最近いろいろとヘロヘロ。つことで,やや手抜きでどうかく?org から。

与えた文章の各単語の最初と最後の文字以外の文字を入れ替えた文章を出力する処理を実装して下さい。元の文章の与え方は特に問いません。

ケブンッリジ関数 どう書く?org

最初と最後以外をランダムに入れ替えればいいらしいので,入れ替えるとこだけ書いてみました。単語に分ける関数をかませる考慮から,引数を直接変更するようにしています。もっとも,せっかく C++ でやってるんだし,イテレーターを使うのがホンモノっぽいのかも。あと,日本語使えません。

#include <cstdlib>
#include <ctime>
#include <iostream>
#include <string>

void
cambridge(std::string& str) {
    int len = str.length();
    ::srand(time(0));
    if (len > 3) {
        int n = len - 2;
        for (int i = 1; i < n; i++) {
            char ch = str.at(i);
            int r = n - (::rand() % n);
            str.replace(i, 1, 1, str.at(r));
            str.replace(r, 1, 1, ch);
        }
    }
}

int
main(int argc, char* argv[]) {
    std::string str = "Cambridge";
    cambridge(str);
    std::cout << str << std::endl;
    return 0;
}

文章を単語に分けるのはめんどっちいので割愛。つか,本題より面倒なんじゃないだろうか。なんか,この手のお題って,本題より前が面倒で投げちゃうことが多い感じ。あ,C++ でやってるからか。しょぼーん。

Trackback
Trackback URL:
Ads
About
Search This Site
Ads
Categories
Recent Entries
Log Archive
Syndicate This Site
Info.
クリエイティブ・コモンズ・ライセンス
Movable Type 3.36
Valid XHTML 1.1!
Valid CSS!
ブログタイムズ

© 2003-2012 AIAN