C++의 라이브러리: 문자열을 스트림처럼 다룰 수 있는 기능 제공
예) 문자열 파싱, 변환, 포맷팅 등
#include <iostream>
#include <sstream> // stringstream 사용
int main() {
std::string str = "123";
int num;
std::stringstream ss(str); // 문자열을 스트림으로 만듦
ss >> num; // 문자열 → 정수 변환
std::cout << "정수 변환 결과: " << num + 10 << '\n'; // 133
}
#include <iostream>
#include <sstream>
int main() {
int num = 456;
std::stringstream ss;
ss << num; // 정수를 문자열로 변환
std::string str = ss.str();
std::cout << "문자열 변환 결과: " << str << '\n'; // "456"
}
#include <iostream>
#include <sstream>
#include <vector>
int main() {
std::string sentence = "C++ is awesome";
std::stringstream ss(sentence);
std::string word;
std::vector<std::string> words;
while (ss >> word) { // 공백을 기준으로 단어 추출
words.push_back(word);
}
for (const auto &w : words) std::cout << w << '\n';
}
/*출력결과
C++
is
awesome
*/
공백이 아니라 , 같은 특정 문자로 분할하려면 getline() 사용!
#include <iostream>
#include <sstream>
#include <vector>
int main() {
std::string data = "apple,banana,grape";
std::stringstream ss(data);
std::string item;
std::vector<std::string> items;
while (getline(ss, item, ',')) { // ',' 기준으로 분할
items.push_back(item);
}
for (const auto &fruit : items) std::cout << fruit << '\n';
}
/*출력결과
apple
banana
grape
*/
#include <iostream>
#include <sstream>
int main() {
std::stringstream ss;
ss << 100;
std::cout << "첫 번째 값: " << ss.str() << '\n';
ss.str(""); // 기존 문자열 비우기
ss.clear(); // 스트림 상태 초기화
ss << 200;
std::cout << "두 번째 값: " << ss.str() << '\n';
}
#include <iostream>
#include <sstream>
int main() {
std::stringstream ss("Hello");
char ch;
ss.get(ch); // 첫 번째 문자 읽기
std::cout << "첫 글자: " << ch << '\n'; // 'H'
}