Programming

[C/C++]C++ 에서 String을 띄어쓰기 단위로 간단하게 파싱하기. String Stream

라우드니스 2010. 10. 9. 20:37

최근에 SIC 어셈블러를 과제로 짜게 됐는데, Pass1, Pass2 같은 어셈블러의 일들보다는 들어오는 SIC 명령어를 올바르게 나누어서 저장하는게 더 어렵더군요. Java였다면 Scanner 객체에 String을 넣으면 띄어쓰기 단위로 쉽게 구분이 갈탠데, 라고 생각하며 이러한 역할을 하는 C++ 객체가 없나 찾아보다가 String Stream에 대해 알게 되었습니다. 


포함된 Header 파일은 sstream 이고 I/O Stream 등 과 같은 Stream 객체이기 때문에 Stream객체가 사용되는 곳에서는 동일한 역할을 합니다.

#include <sstream>

stringstream ss <- 이런식으로 선언하여 객체를 생성합니다. 생성자로 string을 받는 형식도 존재하기 때문에 ss(str)형식으로 하면 string이 바로 들어가게 됩니다.

기본적인 사용법은

ss << str

형식으로 string stream에 string을 집어 넣을 수 있으며

ss >> str 

형식으로는 string stream에 들어있는 string을 띄어쓰기 단위로 얻을 수 있습니다.

마지막으로 위에서도 말했듯이 stream이기 때문에 만약 숫자를 넣을 때 들어갈때는 string으로 들어갔을지라도 꺼내올때는 int 같은 숫자형식의 변수로 받아야 합니다.

반응형