이 질문에 대한 몇 가지 예가 있습니다. 그러나 대부분의 대답은 제가 찾고있는 것이 아닙니다.C++에서 구분 기호로 문자열 분할
부스트 나 다른 STL 라이브러리가 아닌 효율적이고 쉬운 기능을 구현할 방법을 찾고 있습니다. 왜 대부분의 코딩 경쟁 및 인터뷰에서 그 이유를 묻는다면, 당신은 그것들을 사용할 수 없습니다.
vector<string> SplitString(const char *str, char c)
{
vector<string> result;
do {
const char *begin = str;
while(*str != c && *str) {
str++;
}
result.push_back(string(begin, str));
} while (0 != *str++);
return result;
}
int main() {
string mainString = "This is a sentence. Another sentence. The third sentence. This is the last sentence.";
vector<string> sentences;
sentences = SplitString(mainString.c_str(), '.');
while (!sentences.empty()) {
cout << sentences.back() << endl;
sentences.pop_back();
}
return 0;
}
지금이의 문제, 그것은 단지 문자를 구분하지 문자열을 가질 수있다 : 여기
내가 접근 할 수있는 가장 가까운입니다. 몇 가지 방법을 구현할 생각은했지만 너무 복잡한 것처럼 보였습니다. 나는이 후 구분 기호 문자 배열의 첫 번째 문자로 배열 사용c
를 숯불에 구분 기호를 변환,라고 생각하는 가장 쉬운 하나
while(*str != c && *str) {
str++;
}
const char *beginDelim = *cArr;
while(1) {
if (*str == *cArr && *str && *cArr) {
str++;
cArr++;
}
else if (!*cArr) {
break;
}
else if (*cArr) {
cArr = beginDelim;
}
}
그리고 코드는 result.push_back()
부분에서 계속됩니다.
그래서 문자열 구분 기호로 문자열을 분할하기위한 효율적이고 쉬운 기능을 구현하는 방법이 있는지 궁금합니다.
그래서 당신은 구분 기호로 문자열을 원하는? – Aravind
질문 하시겠습니까? –
죄송합니다. 질문은 명확하지 않으며 마지막 문장을 편집했습니다. –