元ネタは http://code.nanigac.com/forum/view/422 かな。

なんか流行ってるみたいなんでやってみた

#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
#include <iterator>
#include <cstring>

char convert(char c, int flg)
{
	return flg ? std::toupper(c) : std::tolower(c);
}

int main(int c, char** v)
{
	if ( c < 2 ) {
		std::cerr << "usage: " << v[0] << " <target string>\n";
		return 0;
	}

	std::string target(v[1]);
	std::vector<int> flg;
	flg.resize(target.size());

	for (int i = 0; i <= target.size(); ++i )
	{
		std::fill_n(flg.rbegin(), i, 1);

		do {
			std::string res;
			std::transform(
					target.begin(), target.end(),
					flg.begin(),
					std::back_inserter(res),
					convert);
			std::cout << res << "\n";
		} while ( std::next_permutation(flg.begin(), flg.end()) );
	}
}
> g++ -o upper_lower upper_lower.cpp
> upper_lower Hello
hello
hellO
helLo
heLlo
hEllo
Hello
helLO
heLlO
heLLo
hEllO
hElLo
hELlo
HellO
HelLo
HeLlo
HEllo
heLLO
hElLO
hELlO
hELLo
HelLO
HeLlO
HeLLo
HEllO
HElLo
HELlo
hELLO
HeLLO
HElLO
HELlO
HELLo
HELLO

うむ ( '-')

※ サンプルの引数と結果が違ってたので修正ー(汁

トラックバック(0)

トラックバックURL: http://floralcompany.jp/mt/mt-tb.cgi/65

コメントする

AUTHOR

  • turugina (虎王 剱奈)
  • E-mail: turugina {at} floralcompany.jp
  • pixiv
  • ニジエ

2014年5月

        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

アーカイブ

OpenID対応しています OpenIDについて
Powered by Movable Type 5.2.10

- 警 告 -

本サイトにはいわゆる「18禁画像」(イラスト)へのリンクが存在します。 未成年の方や、その手の画像に不快感を覚える方は、 該当記事(「えちぃの」及び「ちょっとえちぃの」カテゴリ) をご覧にならないようお願いいたします。

上記を理解した上で非表示のブログパーツを表示する
あわせて読みたいブログパーツ
ついった
drawr/pixiv/twitpic