c++문자열 예제 코드 를 어떻게 분할 합 니까?

말 이 많 지 않 으 면,직접 코드 를 붙인다.
단일 문자 로 단 어 를 나 눌 필요 가 있다 면 getline 으로 직접 읽 으 면 됩 니 다.간단 합 니 다.

 #include <iostream>
 #include <vector>
 #include <string>
 #include <sstream>
 using namespace std;
 
 int main()
 {
   string words;
   vector<string> results;
   getline(cin, words);
   istringstream ss(words);
   while (!ss.eof())
   {
     string word;
     getline(ss, word, ',');
     results.push_back(word);
   }
   for (auto item : results)
   {
     cout << item << " ";
   }
 }
여러 문자 분할 이 라면,예 를 들 면...!잠시 만 요.split 와 유사 한 함 수 를 직접 써 야 합 니 다.

 #include <iostream>
 #include <vector>
 #include <string>
 #include <sstream>
 using namespace std;
 
 vector<char> is_any_of(string str)
 {
   vector<char> res;
   for (auto s : str)
     res.push_back(s);
   return res;
 }
 
 void split(vector<string>& result, string str, vector<char> delimiters)
 {
   result.clear();
   auto start = 0;
   while (start < str.size())
   {
     //         
     auto itRes = str.find(delimiters[0], start);
     for (int i = 1; i < delimiters.size(); ++i)
     {
       auto it = str.find(delimiters[i],start);
       if (it < itRes)
         itRes = it;
     }
     if (itRes == string::npos)
     {
       result.push_back(str.substr(start, str.size() - start));
       break;
     }
     result.push_back(str.substr(start, itRes - start));
     start = itRes;
     ++start;
   }
 }
 
 int main()
 {
   string words;
   vector<string> result;
   getline(cin, words);
   split(result, words, is_any_of(", .?!"));
   for (auto item : result)
   {
     cout << item << ' ';
   }
 }
hello world 입력!Welcome to my blog,thank you!

이상 은 c++문자열 예제 코드 의 모든 내용 을 어떻게 분할 하 는 지 배 웠 습 니까?본 고 는 여러분 이 C++를 사용 할 때 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기