๐Ÿ“˜ C++

[C++] ๋ฌธ์ž์—ด ํ•จ์ˆ˜ ์ •๋ฆฌ

ji_wonna 2022. 7. 18. 22:47

1. stoi() : ๋ฌธ์ž์—ด์„ ์ •์ˆ˜๋กœ ๋ณ€ํ™˜

  • ์†Œ์ˆ˜์ ์€ ์ œ๊ฑฐํ•˜๊ณ  ์ •์ˆ˜๋กœ ๋ณ€ํ™˜
int stoi(๋ฌธ์ž์—ด);
int num = stoi("์•ˆ๋…•");


2. to_string() : ์ •์ˆ˜๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜

string to_string(int num);


3. erase() : ๋ฌธ์ž์—ด ์ œ๊ฑฐ

  • ํŠน์ • ๊ธธ์ด๋งŒํผ ์ œ๊ฑฐ : string& erase(pos, len);
  • ํŠน์ • ์œ„์น˜์˜ ๋ฌธ์ž์—ด ์ œ๊ฑฐ : iterator erase(const_iterator p);
  • ํŠน์ • ๋ฒ”์œ„ ์ œ๊ฑฐ : iterator erase(const_iterator first, const_iterator end);
string str = "This is test sentence";
str.erase(0, 5);//"This"์‚ญ์ œ
//[์‹คํ–‰๊ฒฐ๊ณผ] "test sentence"

string str = "This is test sentence";
str.erase(str.begin()+2);
//[์‹คํ–‰๊ฒฐ๊ณผ] "Ths is test sentence"

string str = "This is test sentence";
str.erase(str.begin()+5, str.begin()+13);
//[์‹คํ–‰๊ฒฐ๊ณผ] "This sentence"
  • ํŠน์ • ๋ฌธ์ž ํƒ์ƒ‰ํ•ด์„œ ์ œ๊ฑฐ
string str = "Hello, jiwon";
str.erase(find(str.begin(), str.end(), ','));
//[์‹คํ–‰๊ฒฐ๊ณผ] "Hello jiwon"


4. find() : ๋ฌธ์ž์—ด ์ฐพ๊ธฐ

  • ๋ฌธ์ž์—ด ์กด์žฌ โ†’ ๋ฌธ์ž์—ด์˜ ์ฒซ ๋ฒˆ์งธ ์ธ๋ฑ์Šค ์ฃผ์†Œ return (์—ฌ๋Ÿฌ ๊ฐœ์—ฌ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€)
  • ๋ฌธ์ž์—ด ์—†์Œ โ†’ string::npos๊ฐ’ return (npos๋Š” ๋ฌด์ž‘์œ„ long long ๊ฐ’)
  • str.find(โ€์ฐพ๊ณ  ์‹ถ์€ ๋ฌธ์ž์—ดโ€);
  • str.find(โ€๋ฌธ์ž์—ดโ€, ํƒ์ƒ‰ ์‹œ์ž‘ ์œ„์น˜); โ†’ ํƒ์ƒ‰ ์‹œ์ž‘ ์œ„์น˜ 3์ด๋ฉด 3๋ฒˆ์งธ ์ธ๋ฑ์Šค๋ถ€ํ„ฐ ํƒ์ƒ‰


5. substr(), find() : ๋ฌธ์ž์—ด ํŒŒ์‹ฑ

  • substr๋กœ find ์ธ๋ฑ์Šค๊นŒ์ง€ ์ž๋ฅด๊ธฐ
//๋ฌธ์ž์—ด์ด๋ฆ„.find("ํƒ์ƒ‰ํ•  ๋ฌธ์ž์—ด");
//๋ฌธ์ž์—ด์ด๋ฆ„.substr(์‹œ์ž‘์œ„์น˜, ๊ธธ์ด);
string str = "muzi frodo";
str1 = str.substr(0, str.find(' '));
str2 = str.substr(str.find+1);//๋ถ€ํ„ฐ ๋๊นŒ์ง€
//[๊ฒฐ๊ณผ] str1="muzi", str2="frodo"
  • 2๊ฐœ ์ด์ƒ์˜ ๊ณต๋ฐฑ์„ ๊ธฐ์ค€์œผ๋กœ ํŒŒ์‹ฑ
int main() {
	string str = "abc d efg hijklm nopq rs tuv wxyz";
	vector<string> token;

	string want_find = " ";
	str.append(" ");
    //" "๋ฅผ ์•ˆ ๋ถ™์—ฌ์ฃผ๋ฉด wxyz ๋ชป ์ฐพ์Œ ๋‚จ์€ ๊ณต๋ฐฑ์ด ์—†์–ด์„œ
	int pos = 0;//์ฐพ์€ ์œ„์น˜
	while ((pos = str.find(want_find)) != string::npos) {
		string parsing = "";
		parsing = str.substr(0, pos);//์ชผ๊ฐœ๊ณ 
		token.push_back(parsing);//์ €์žฅ
		str.erase(0, pos + want_find.length());
        //์ฐพ์€ ๋ฌธ์ž์—ด๊นŒ์ง€ ์ง€์›Œ์ฃผ๊ธฐ
	}
	for (const auto& i : token) {
		cout << i << endl;
	}
}


6. islower(), isupper() : ์†Œ๋ฌธ์ž. ๋Œ€๋ฌธ์ž ํŒ๋ณ„

  • #include <cctype>
  • false โ†’ 0 return
  • true โ†’ 0์ด ์•„๋‹Œ ๊ฐ’ return
islower('a');//0์ด ์•„๋‹Œ ๊ฐ’ return
islower('A');//0 return


7. tolower(), toupper() : ๋Œ€๋ฌธ์ž โ†”๏ธ ์†Œ๋ฌธ์ž ๋ณ€ํ™˜

  • #include <cctype>
  • ASCII ์ฝ”๋“œ์— ๊ธฐ๋ฐ˜ํ•œ ์ •์ˆ˜๋ฅผ return (char()๋กœ ํ˜• ๋ณ€ํ™˜ํ•˜๊ธฐ)
cout << "A tolower : " << char(tolower('A')) << endl;
//[๊ฒฐ๊ณผ]'a'
cout << "a tolower : " << char(toupper('a')) << endl;
//[๊ฒฐ๊ณผ]'A'


8. replace() : ๋ฌธ์ž์—ด ์น˜ํ™˜

  • str.replace(์‹œ์ž‘ ์ธ๋ฑ์Šค, ๊ธธ์ด, ๋Œ€์ฒดํ•  ๋ฌธ์ž์—ด)
vector<string> name;
name.push_back("kim");
name.push_back("ji");
name.push_back("won");//"kim", "ji", "won"
name[0].replace(0, 3, name[1]);
for (const auto& i : name) cout<<i<<endl;//"ji", "ji", "won"
//๋งŒ์•ฝ์— name[0]๋’ค์— ์š”์†Œ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ์œผ๋ฉด push_back ๋Œ€์‹  append ์‚ฌ์šฉ
name[0].append("won");//"jiwon", "ji", "won"

'๐Ÿ“˜ C++' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[C++] Pair Container ์‚ฌ์šฉ๋ฒ•  (0) 2022.07.18
[C++] STL Vector ๊ด€๋ จ ํ•จ์ˆ˜ ์ •๋ฆฌ  (0) 2022.07.15