C 文字列操作 新しいページはコチラ

提供: yonewiki
移動: 案内, 検索
(文字列大文字小文字変換)
(文字列大文字小文字変換)
3,069行: 3,069行:
 
aBcdEfgに書かれているものをABCDEFGに変換したり、あるいはabcdifgに変換したりできます。AbCDeFGみたいに入れ替えたり、英語の自然表記のため文章の始めの文字を探したり、略語や固有名詞の先頭文字を大文字にし、そのほかを小文字にするのはまた別の話になります。入れ替えくらいなら機械的な操作なのでやれると思います。大文字と小文字を同一視する必要のある検索の一致や大文字と小文字を区別しないメールアドレスやドメイン名の文字列変換に利用することもあります。この変換にも先述したICUを利用することができますが、この程度であれば標準関数を利用した方がよいです。DLLファイルを配ったり、プロジェクトにLibライブラリを読み込んだりINCLUDEファイルを設定したり、大きな実行ファイル群を要することになります。どうせ配布するならICUを使った方がよかったりする場合もありますので、ケースバイケースでしょうか?
 
aBcdEfgに書かれているものをABCDEFGに変換したり、あるいはabcdifgに変換したりできます。AbCDeFGみたいに入れ替えたり、英語の自然表記のため文章の始めの文字を探したり、略語や固有名詞の先頭文字を大文字にし、そのほかを小文字にするのはまた別の話になります。入れ替えくらいなら機械的な操作なのでやれると思います。大文字と小文字を同一視する必要のある検索の一致や大文字と小文字を区別しないメールアドレスやドメイン名の文字列変換に利用することもあります。この変換にも先述したICUを利用することができますが、この程度であれば標準関数を利用した方がよいです。DLLファイルを配ったり、プロジェクトにLibライブラリを読み込んだりINCLUDEファイルを設定したり、大きな実行ファイル群を要することになります。どうせ配布するならICUを使った方がよかったりする場合もありますので、ケースバイケースでしょうか?
  
とりあえずは、ICUの方の変換を記載しておきます。
+
とりあえずは、ICUの方の変換を記載しておきます。大文字、小文字変換の他に日本語ひらがなとカタカナとローマ字の相互変換についてもサンプルを示しました。ICUを使えば、簡単に変換してくれます。完璧ではなさそうなので、一括変換する場合は注意して使う必要はありそうです。
 
<syntaxhighlight lang="cpp" line start="1">
 
<syntaxhighlight lang="cpp" line start="1">
 
#pragma once
 
#pragma once
3,304行: 3,304行:
  
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
ひらがな→ローマ字変換が残念な結果になっているようでして、ひらがなと一緒に記述していたカタカナのギャギュギョをg~ャg~ュg~ョと変換してしまったようです。こんな変換をプログラムで提供することは稀れだと思いますが、ICUのバグのようですので、注意して使いましょう。ひらがなローマ字変換とか変換遊びの範囲まで来てるような気がします。やってみようとするところは凄いと思います。ほかにもたくさんの変換マップがあるようです。テキストエディタで特殊な変換を提供してみるのもおもしろいのかもしれません。使いこなせるユーザの方が少なさそうです。半角全角変換も同じような要領で実施できます。これらの変換は基本的にはUnicodeの中で実施され、その後、Unicodeから違う文字コードへの変換をするといった作業にで文字コードへの対応を実現します。次の項目では、これらの変換と同時に文字コードの変換を行う手法についても触れています。
  
 
=='''文字列半角文字全角文字変換'''==
 
=='''文字列半角文字全角文字変換'''==

2014年10月1日 (水) 00:00時点における版



個人用ツール
名前空間

変種
操作
案内
ツールボックス