SMS
日課消化。
かなり汚いコードだけど、課題に即しているって意味では分かりやすくなっているのかも。
unsigned intのまま、0より小さくなる場合とか扱えるようになるとよりいいんだけどねぇ…。上手い方法ないものか。
class SMS { private: bool checkvowel(char a){ bool check = false; if(a == 'a') check = true; if(a == 'e') check = true; if(a == 'i') check = true; if(a == 'o') check = true; if(a == 'u') check = true; return check; } public: string compress(string originalMessage) { string result; for(unsigned int i=0; i<originalMessage.size(); i++){ bool remove=false; if(checkvowel(originalMessage[i])){ int j=i-1; bool leftinferiorcheck = false; while(j >=0 && originalMessage[j] != ' '){ if(!checkvowel(originalMessage[j])){ leftinferiorcheck = true; break; } j--; } j=i+1; bool rightinferiorcheck = false; while(leftinferiorcheck && j < (int)originalMessage.size() && originalMessage[j] != ' '){ if(!checkvowel(originalMessage[j])){ rightinferiorcheck = true; break; } j++; } if(leftinferiorcheck && rightinferiorcheck) remove = true; } if(!remove) result.append(1,originalMessage[i]); } return result; } };