"C++ preg split() 구현"의 두 판 사이의 차이

9번째 줄: 9번째 줄:


int main() {
int main() {
     string s = "abc,defgh,ijk";
     string in = "abc,defgh,ijk";
      
      
     regex rx(",");
     regex rx(",");
     sregex_token_iterator iter(s.begin(), s.end(), rx, -1), end;
     sregex_token_iterator iter(in.begin(), in.end(), rx, -1), end;
     vector<string> strs{iter, end};
     vector<string> strs{iter, end};
     for (string str: strs) cout << str << ' '; // abc defgh ijk  
     for (string s: strs) cout << s << ' '; // abc defgh ijk  
}
}
</syntaxhighlight>
</syntaxhighlight>
24번째 줄: 24번째 줄:


int main() {
int main() {
     string s = "abc,defgh,ijk";
     string in = "abc,defgh,ijk";
      
      
     vector<string> strs;
     vector<string> strs;
     istringstream ss(s);
     istringstream ss(in);
     for (string s; getline(ss, s, ','); ) {
     for (string s; getline(ss, s, ','); ) {
         strs.push_back(s);
         strs.push_back(s);
     }
     }
     for (string str: strs) cout << str << ' '; // abc defgh ijk  
     for (string s: strs) cout << s << ' '; // abc defgh ijk  
}
}
</syntaxhighlight>
</syntaxhighlight>

2023년 9월 24일 (일) 14:46 판

1 개요

C++ 문자열 split() 구현
C++
Copy
#include <iostream>
#include <regex>
#include <vector>
using namespace std;

int main() {
    string in = "abc,defgh,ijk";
    
    regex rx(",");
    sregex_token_iterator iter(in.begin(), in.end(), rx, -1), end;
    vector<string> strs{iter, end};
    for (string s: strs) cout << s << ' '; // abc defgh ijk 
}
Loading
C++
Copy
#include <iostream>
#include <sstream>
#include <vector>
using namespace std;

int main() {
    string in = "abc,defgh,ijk";
    
    vector<string> strs;
    istringstream ss(in);
    for (string s; getline(ss, s, ','); ) {
        strs.push_back(s);
    }
    for (string s: strs) cout << s << ' '; // abc defgh ijk 
}
Loading

2 같이 보기