ユニコード文字列の分割
csvやファイルパスをカンマや'\'で分割する関数をユニコードでも
対応できるように改修していのですがやり方が分かりません。
関数のロジックはおおよそ以下の通りです。
(仕事先のセキュリティの関係でソースは持ち出せませんので概要ですが・・・)
split(str, item, len, words[item][len], delimiter)
char* str: 分割対象の文字列
int item:項目数(上限あり)
int len:項目の文字数(上限あり)
words[item][len]:文字列を分割、項目として格納する配列
char delimiter:区切り文字
int i=0, j=0;
while(*str != NULL){
// 文字列を分割する処理
if(str != delimiter){
words[i][j++] = *str
}
else if{
words[i][j] = NULL
i++; j=0;
}
・・・・・・・・・
str++;
}
// 後処理があります
VCの設定がマルチバイト対応だったので問題なかったのですが
ユニコードに設定を切り替えるとパスの分割でカタカナの「ソ」
を含む文字列が正しく分割されないという事象が発生しました。
関数内の改修だけで解決する方法があるでしょうか?
ある程度プロジェクトが動いているのであまり時間をかけないで
対応する必要があります。
OS: Windows7 SP1
環境: VC++ 2008 MFC
お礼
ご回答有り難うございます。 情報大変参考になりました。