ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

728x90
๋ฐ˜์‘ํ˜•
c++์—์„œ ๋ฌธ์ž์—ด์„ ๋‹ค๋ฃจ๋Š” ๊ฒฝ์šฐ๋Š” ํฌ๊ฒŒ ๋ถ€๋ถ„๋ฌธ์ž์—ด์„ ๋งŒ๋“œ๋Š” ๊ฒฝ์šฐ์™€ ํŠน์ • ๊ตฌ๋ถ„๋ฌธ์ž(delimiter)๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ฌธ์ž์—ด์„ ๋‚˜๋ˆ„๋Š” ๊ฒฝ์šฐ์ด๋‹ค. ์–ด๋ ต์ง„ ์•Š์ง€๋งŒ, ๋ชจ๋ฅด๋ฉด ์‚ฝ์งˆํ•ด์•ผํ•˜๋‹ˆ ์ •๋ฆฌํ•ด๋‘๊ณ ์ž ํ•œ๋‹ค.

 

substr

#include <string>
#include <vector>

using namespace std;

string<vector> getSubStr(string s, int len) {
    string subStr;
    vector<string> subStr;
    
    // ์ž๋ฅผ ๊ธธ์ด
    for (register int end = 1; end < len; end++) {
        // ์ž๋ฅผ ์œ„์น˜
        for (register int start = 0; start < len; start++) {
            subStr.push_back(s.substr(start, end));
        }
    }
    
    return subStr;
}

 ์œ„์™€ ๊ฐ™์ด `substr`์„ ํ™œ์šฉํ•˜์—ฌ, ์ž๋ฅผ ์œ„์น˜์™€ ๊ธธ์ด๋ฅผ ์ง€์ •ํ•˜๋ฉด ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•๋„ ์žˆ๊ฒ ์ง€๋งŒ ์‹ฌํ”Œํ•ด์„œ ์ข‹์€ ๊ฒƒ ๊ฐ™๋‹ค.

 

split

#include <sstream>
#include <string>
#include <vector>

using namespace std;

vector<string> getSplitStr(string s) {
    istringstream is(mWord);
    string buf;
    vector<string> ret;
    
    while(getline(is, buf, '_'))
    	ret.push_back(buf);
   
   return ret;
}

 ํŠน์ • ๊ตฌ๋ถ„ ๋ฌธ์ž๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ฌธ์ž์—ด์„ ๋‚˜๋ˆ„๋Š” ๊ฒƒ์€ ์œ„์™€ ๊ฐ™์ด, `sstream`์˜ `istringstream`์„ ํ™œ์šฉํ•˜์—ฌ์„œ ์‰ฝ๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

728x90
๋ฐ˜์‘ํ˜•
๋Œ“๊ธ€
๊ธ€ ๋ณด๊ด€ํ•จ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€