#ifndef STRINGCOMPARATOR_HPP_ #define STRINGCOMPARATOR_HPP_ #include #include "toString.hpp" using namespace std; class StringComparator { public: static vector comparate(string inStr) { vector sList; int count = 0; // 全角が始まってからのカウンタ char bufC[10]; // 全角保存用 bool isLastFULL = false; // 前回の文字が全角かどうか // clear list sList.clear(); for(int i=0;i<(int)inStr.length(); i++) { // 今回が半角 if(inStr.at(i) > 0) { // 前回が全角 if(isLastFULL) { bufC[count] = '\0'; sList.push_back( toString(bufC) ); } sList.push_back( toString(inStr.at(i)) ); // 変数のリセット isLastFULL = false; count = 0; } // 今回が全角 else { if(count == 3) { bufC[count] = '\0'; sList.push_back( toString(bufC) ); count = 0; } isLastFULL = true; bufC[count++] = inStr.at(i); } } // 最後の文字が全角だった場合 if(isLastFULL) { bufC[count] = '\0'; sList.push_back( toString(bufC) ); } return sList; } }; #endif /* STRINGCOMPARATOR_HPP_ */