for (size_t i = 0; i < pimpl->converted.size(); ++i) { // 一致したパターンを置換する for (int j = 0; pimpl->convert_table[j] != 0x0; j += steps) { size_t match = pimpl->converted.compare(i, pimpl->ptnlen(j, pimpl->convert_table), &pimpl->convert_table[j]); if (match == 0) { } if (match == 0) { pimpl->replace(i, j); // か + (濁点) といった変換用のために、1文字分戻る --i; break; } } }
for (int j = pimpl->max_length; pimpl->convert_table[j] != 0x0; j += steps) { int ptn_length = pimpl->ptnlen(j, pimpl->convert_table); int compare_first = i - (ptn_length -1); if (compare_first < 0) { continue; } size_t match = pimpl->converted.compare(compare_first, ptn_length, &pimpl->convert_table[j]); ...