charからstringへの変換
みなさんどうやってますか?
僕はよく以下のように書きます。(ここでは、char型のcをstring型のsに変換したいとします。)
#include <iostream> using namespace std; int main() { char c = 'a'; string s; s += c; return 0; }
以下のように書く人をよく見かけますが、これは無駄にソース量が多いのではと思います。
#include <iostream> #include <sstream> using namespace std; int main() { char c = 'a'; string s; stringstream ss; ss << c; ss >> s; return 0; }
ちょっと考えてみましたが、下のように書くのが一番いいのでは。
#include <iostream> using namespace std; int main() { char c = 'a'; string s(1, c); return 0; }
母音判定
普通に書くとこうなります。
#include <iostream> using namespace std; int main() { char c = 'a'; if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u') cout << "vowel" << endl; else cout << "consonant" << endl; return 0; }
ifの中が多くて面倒くさいです。以下のように書くとスマートになります。
#include <iostream> using namespace std; int main() { char c = 'a'; if (~string("aeiou").find(c)) cout << "vowel" << endl; else cout << "consonant" << endl; return 0; }
少し長くなってしまいますが、以下のような書き方もあります。
#include <iostream> using namespace std; int main() { char c = 'a'; if (~string(1, c).find_first_of("aeiou")) cout << "vowel" << endl; else cout << "consonant" << endl; return 0; }
0 件のコメント:
コメントを投稿