programing:cpp_builder:cpp_builder-unicode
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
programing:cpp_builder:cpp_builder-unicode [2020/01/31 15:03] – [C標準関数の修正] yoko | programing:cpp_builder:cpp_builder-unicode [2020/01/31 21:29] (現在) – [文字列及び文字の移行] yoko | ||
---|---|---|---|
行 3: | 行 3: | ||
[[devtool/ | [[devtool/ | ||
- | 文字列の扱い | + | 文字列の扱い変更対応 |
- | ----------- | + | ----------------- |
`UnicodeString`型が追加され、従来の `String`型,`Char`型,`PChar`型の定義が以下のように変更されている。({{https:// | `UnicodeString`型が追加され、従来の `String`型,`Char`型,`PChar`型の定義が以下のように変更されている。({{https:// | ||
行 12: | 行 12: | ||
| `PChar` | | `PChar` | ||
- | ### 文字列及び文字の移行 | + | ### 準備 |
+ | ソースファイルは全て UTF-8 のBOM付きに変換して保存しておく。 | ||
+ | |||
+ | ### 文字列及び文字の型移行 | ||
従来の`AnsiString`や`char`型も引き続き使えるが、将来の事も考えて以下のようにソースを修正。 | 従来の`AnsiString`や`char`型も引き続き使えるが、将来の事も考えて以下のようにソースを修正。 | ||
行 19: | 行 22: | ||
| `char` | | `char` | ||
| `char *` | `PChar` | | `char *` | `PChar` | ||
- | |||
- | * 尚、ソースファイルは全て UTF-8 のBOM付きに変換して保存しておく。 | ||
### 文字列定数及び文字定数の修正 | ### 文字列定数及び文字定数の修正 | ||
行 33: | 行 34: | ||
`fopen`などのC標準関数は、`char`型を要求しているのでコンパイルエラーとなる。以下のように、`_w`を付加した関数名に変更する。 | `fopen`などのC標準関数は、`char`型を要求しているのでコンパイルエラーとなる。以下のように、`_w`を付加した関数名に変更する。 | ||
<code c> | <code c> | ||
+ | String fname = L" | ||
+ | |||
fp = fopen(fname.c_str(), | fp = fopen(fname.c_str(), | ||
↓ | ↓ | ||
行 42: | 行 45: | ||
その他対応の関数名は「[[http:// | その他対応の関数名は「[[http:// | ||
- | ^ 移行前 | + | ^ 移行前 |
- | | `fgetc` | + | | `fgetc` |
- | | `sprintf` | + | | `sprintf` |
- | | `toupper` | + | | `toupper` |
- | | `tolower` | + | | `tolower` |
+ | その他注意点 | ||
+ | ---------- | ||
+ | |||
+ | ### 添え字番号の開始は1 | ||
+ | String型の文字列は文字配列のようにアクセスできるが、添え字の開始番号は 0 でなくて 1〜 なので注意。(0でアクセスすると例外トラップ) | ||
+ | |||
+ | <code c> | ||
+ | String text = L" | ||
+ | Char c = text[1]; | ||
+ | </ | ||
行 67: | 行 80: | ||
8. [[http:// | 8. [[http:// | ||
9. [[https:// | 9. [[https:// | ||
+ | 10. [[https:// | ||
programing/cpp_builder/cpp_builder-unicode.1580450581.txt.gz · 最終更新: 2020/01/31 15:03 by yoko