string ํค๋
#include <string>
๐ ์ ์ธ ๋ฐ ์ด๊ธฐํ ์์
//์์ฑ๊ณผ ๋์์ ์ด๊ธฐํ
string str1 = "Hello World!");
string str2("Hello World!");
//์์ฑํ ํ ์ด๊ธฐํ
string str3;
str3 = "Hello World!";
//๋ค๋ฅธ ๋ฌธ์์ด๋ก ์ด๊ธฐํ
string str4(str3);
๐ ๋ฉค๋ฒํจ์
๋ฌธ์์ด์ ๋ฌธ์ ์ ๊ทผ
string str = "Hello World!"
// ๋ฐฐ์ด์ฒ๋ผ Index๋ก ์ ๊ทผ
str[0]; // 'H' ๋ฐํ. ๋ฐํ๋ ๋ฌธ์๋ charํ
str.at(0); // 'H' ๋ฐํ. ๋ฐํ๋ ๋ฌธ์๋ charํ
// ๋งจ ์ ๋ฌธ์ ๋ฐํ
str.front();
// ๋งจ ๋ค ๋ฌธ์ ๋ฐํ
str.back();
๋ฌธ์์ด์ ๊ธธ์ด ๋ฐํ
string str = "Hello World!"
str.size(); // 12
str.length(); // 12
๋ฌธ์์ด->์ซ์, ์ซ์->๋ฌธ์์ด
string str_i = "1";
string str_d = "1.23";
string str_f = "3.14";
int i_str = stoi(str_i); // "1"์ intํ 1๋ก ๋ณํ
double d_str = stod(str_d); // "1.23"์ doubleํ 1.23์ผ๋ก ๋ณํ
float f_str = stof(str_f); // "3.14"๋ฅผ floatํ 3.14๋ก ๋ณํ
int num = 123;
string s_num;
s_num = to_string(num); // 123์ด "123"์ผ๋ก ๋ณํ
// ๋ฌธ์->์ซ์
char c1 = '3';
int i1 = c - '0'; // i1์๋ ์ซ์ 3์ด ์ ์ฅ
// ์ซ์->๋ฌธ์
int i2 = 1;
char c2 = 1 + '0'; // c2์๋ '1'์ด ์ ์ฅ
string ์ฝ์ , ์ถ๊ฐ, ์ญ์
// str1 ๋ค์ str2๋ฅผ ๋ถ์
str1.append(str2);
// str1 ๋ค์ 'str2์ n index๋ถํฐ m๊ฐ์ ๋ฌธ์๋ฅผ ์ด์ด ๋ถ์
str1.append(str2, n, m);
// str1 ๋ค์ n๊ฐ์ 'a'๋ฅผ ์ด์ด ๋ถ์
str1.append(n, 'a');
// n๋ฒ์งธ index์์ str2์ ์ฝ์
str1.insert(n, str2);
// n๋ฒ์งธ index๋ถํฐ k๊ฐ์ ๋ฌธ์๋ฅผ str2๋ก ๋์ฒด
str1.replace(n, k, str2);
// ๋ฌธ์์ด ์ด๊ธฐํ
str1.clear();
str1.erase();
// n~m index์ ๋ฌธ์์ด ์ ๊ฑฐ
str1.erase(n, m);
// str1์ ๋งจ๋ค์ ๋ฌธ์ 'c'๋ฅผ ๋ถ์
str1.push_back(c);
// str1์ ๋งจ๋ค ๋ฌธ์ ์ ๊ฑฐ
str1.pop_back();
// str1์ str2ํ ๋น
str1.assign(str2);
๊ธฐํ string ๋ฉค๋ฒ ํจ์
str.find("abcd"); // "abcd"๊ฐ str์ ํฌํจ๋์ด ์์ผ๋ฉด ์ฐพ์ ๋ถ๋ถ์ index ๋ฐํ
//find๋ ์ฐพ์ง ๋ชปํ๋ฉด npos๋ฅผ returnํ๋ค.
if(str.find("abcd") != string::npos){} // ๋ฌธ์์ด์ด ํฌํจ๋์๋์ง ์ฐพ๋ ์กฐ๊ฑด๋ฌธ?
str.substr(); // str ์ ์ฒด ๋ฐํ
str.substr(n); // str์ n๋ฒ์งธ index๋ถํฐ ๋๊น์ง๋ฅผ ๋ถ๋ถ๋ฌธ์์ด๋ก ๋ฐํ
str.substr(n, k); // str์ n๋ฒ์งธ index๋ถํฐ k๊ฐ์ ๋ฌธ์๋ฅผ ๋ถ๋ถ๋ฌธ์์ด๋ก ๋ฐํ
str1.compare(str2); // str1๊ณผ str2๊ฐ ๊ฐ์์ง๋ฅผ ๋น๊ต. ๊ฐ์ผ๋ฉด 0, str1<str2 ์ธ ๊ฒฝ์ฐ ์์, str1>str2 ์ธ ๊ฒฝ์ฐ ์์๋ฅผ ๋ฐํ
swap(str1, str2); // str1๊ณผ str2๋ฅผ ๋ฐ๊ฟ์ค. reference
isdigit(c); // c๊ฐ ๋ฌธ์์ธ์ง
isalpha(c); // c๊ฐ ์ํ๋ฒณ์ธ์ง
toupper(c); // c๋ฅผ ๋๋ฌธ์๋ก
tolower(c); // c๋ฅผ ์๋ฌธ์๋ก
Split ํจ์
ํ์ธ์ด๋ค์ splitํจ์๋ฅผ ์ง์ํ์ฌ ๋ฌธ์์ด์ฒ๋ฆฌ๋ฅผ ๋น ๋ฅด๊ฒ ํ ์ ์๋ค.
C++์๋ ๊ธฐ๋ณธ์ ์ผ๋ก splitํจ์๊ฐ ๋ด์ฅ๋์ด ์์ง ์๊ธฐ ๋๋ฌธ์ ๋ฏธ๋ฆฌ ํจ์๋ฅผ ๊ตฌํํ์ฌ ์ตํ๋๋ฉด ์ข์ ๊ฒ ๊ฐ๋ค๋ ์๊ฐ์ด ๋ค์๋ค.
splitํจ์์ ๋งค๊ฐ๋ณ์๋ input, delimiter์ด๋ค. input์๋ ์๋ฅผ ๋ฌธ์์ด์, delitmiter์๋ ์๋ฅผ ๊ธฐ์ค์ด ๋๋ ๋ฌธ์๋ฅผ ๋ฃ์ด์ค๋ค.
* stringstream์ ๋ฌธ์์ด์ ์ ๋ ฅ ์คํธ๋ฆผ์ผ๋ก ์๊ฐํ๊ฒ ํด์ค๋ค.
vector<string> split(string input, char delimiter)
{
vector<string> answer;
stringstream ss(input);
string tmp;
while(getline(ss, tmp, delimiter))
answer.push_back(tmp);
return answer;
}
int main()
{
vector<string> ans = split("a b c d e ", ' ');
for(int i = 0;i<ans.size();i++)
{
cout<<ans[i]<<endl;
}
}
๋ฐ์ํ
'Programming Language > C++' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C++]ํจ์์ ํ๋ผ๋ฏธํฐ (0) | 2020.10.17 |
---|