C 文字列操作 新しいページはコチラ
提供: yonewiki
(→文字列と日付・日時・時間の変換) |
(→文字列と日付・日時・時間の変換) |
||
5,840行: | 5,840行: | ||
// | // | ||
− | fmt->adoptCalendar(cals);// | + | fmt->adoptCalendar(cals);//フォーマットにカレンダーを設定。 |
for(int k=2014;k<2015;k++){ | for(int k=2014;k<2015;k++){ | ||
− | cals->set(k - 1988 , 10 - 1, 17, 14, 0, 0); | + | cals->set(k - 1988 , 10 - 1, 17, 14, 0, 0);//カレンダーの日付を数値で設定する方法 ja_JP_TRADITIONAは1988年基準 昭和元年が1989年 |
− | UDate now = cals->getTime(status); | + | UDate now = cals->getTime(status);//nowに現在時間を取得。UDateはDouble型と同じです。 |
UnicodeString buf; | UnicodeString buf; | ||
− | fmt->format(now, buf); | + | fmt->format(now, buf);//UnicodeString型のbufの内容をnowに設定されている時間を文字列にしたものに変換。変換は指定されているフォーマットの形式。 |
char* dst = new char[256]; | char* dst = new char[256]; | ||
− | std::string conv(buf.extract(0, buf.length(), 0, "shift_jis"), '\0'); | + | std::string conv(buf.extract(0, buf.length(), 0, "shift_jis"), '\0');//string型convをbufの文字列のShiftJIS形式長さ分確保 初期値は\0で埋める |
− | buf.extract(0, buf.length(), &conv[0], "shift_jis"); | + | //UnicodeStringのextractはbufの中身を(第一引数 =0)文字目から、(第二引数 =buf.length())文字目までを第四引数にしていされた文字コードの型に変換して第三引数の変数に格納する関数 |
− | memcpy(dst, conv.c_str(), conv.size()); | + | //変換先が指定されていない場合でも変換後の文字サイズが返却されます。ここでは文字サイズを取得してconvを初期化しています。 |
− | printf("%d-%s ",k,conv.c_str()); | + | buf.extract(0, buf.length(), &conv[0], "shift_jis");//ここでconvに実際に変換後の文字を格納。 |
+ | memcpy(dst, conv.c_str(), conv.size());//convの内容をchar型dstにコピー | ||
+ | printf("%d-%s ", k, conv.c_str());//convの内容を出力。 | ||
delete dst; | delete dst; | ||
} | } |