쉼표로 구분된 정수가 거의 없는 문자열이 있다고 가정합니다. 우리는 그것들을 분리하고 각 정수를 다른 줄에 표시해야 합니다. 이를 위해 C++에서 stringstream(sstream 라이브러리 아래)을 사용할 것입니다. 이것은 C++에 있는 하나의 문자열 기반 스트림 클래스입니다. 추출 연산자(<<)를 사용하여 무언가를 추출하고 삽입 연산자(>>)를 사용하여 무언가를 삽입하고 str() 함수를 사용하여 기본 문자열 장치 개체의 내용을 설정할 수 있습니다.
따라서 입력이 s ="56,9,85,256,47"과 같으면 출력은
56 9 85 256 47
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
-
배열 정의 take_int(string str)
-
ss
라는 문자열 스트림 개체를 하나 생성합니다. -
배열 결과 정의
-
ss에서 temp로 가져온 새 정수 항목이 null이 아닌 동안 다음을 수행합니다.
-
결과 끝에 tmp 삽입
-
단일 문자를 제거하여 쉼표 문자 건너뛰기
-
-
반환 결과
-
-
기본 방법에서 다음을 수행합니다.
-
배열 정수 정의 =take_int(s)
-
initialize i :=0의 경우, i <정수 크기일 때 업데이트(i 1만큼 증가), 수행:
-
정수 표시[i]
-
예
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
#include <iostream> #include <sstream> #include <vector> using namespace std; vector<int> take_int(string str) { stringstream ss(str); vector<int> result; char ch; int tmp; while(ss >> tmp) { result.push_back(tmp); ss >> ch; } return result; } int main(){ string s = "56,9,85,256,47"; vector<int> integers = take_int(s); for(int i = 0; i < integers.size(); i++) cout << integers[i] << "\n"; }
입력
56,9,85,256,47
출력
56 9 85 256 47