stringstream class c usage examples
C ++의 stringstream 클래스는 문자열에서 작동하는 스트림 클래스입니다. stringstream 클래스는 메모리 기반 스트림, 즉 문자열에 대한 입력 / 출력 작업을 구현합니다.
C ++의 stringstream 클래스를 사용하면 문자열 개체를 스트림으로 처리 할 수 있습니다. 문자열에서 작동하는 데 사용됩니다. 문자열을 스트림으로 처리함으로써 cin 및 cout 스트림과 마찬가지로 문자열에서 추출 및 삽입 작업을 수행 할 수 있습니다.
이러한 유형의 연산은 문자열을 숫자 데이터 유형으로 또는 그 반대로 변환하는 데 주로 유용합니다. stringstream 클래스는 또한 다양한 유형의 구문 분석에 도움이되는 것으로 입증되었습니다.
학습 내용 :
C ++의 stringstream 클래스
stringstream 클래스는 다음과 같이 그림으로 표현할 수 있습니다.
ios 다이어그램에서 stringstream 클래스가 그림에 나오는 위치를 볼 수 있습니다. 이 클래스는 iostream 클래스에서 파생됩니다. stringstream 클래스의 객체는 일련의 문자를 포함하는 문자열 버퍼를 사용합니다. 이 버퍼는 문자열 객체로 직접 액세스 할 수 있습니다.
이를 위해 stringstream의 str 멤버를 사용할 수 있습니다. C ++ 프로그램에서 stringstream 클래스를 사용하려면 헤더를 사용해야합니다. .
예를 들어문자열에서 정수를 추출하는 코드는 다음과 같습니다.
string mystr(“2019”); int myInt; stringstream (mystr)>>myInt;
여기에서 값이 '2019'인 문자열 객체와 'myInt'int 객체를 선언합니다. 다음으로 stringstream 클래스 생성자를 사용하여 문자열 객체에서 stringstream 객체를 생성합니다. 그런 다음 추출 연산자 (>>)를 사용하여 값이 myInt로 추출됩니다. 위 코드에서 myInt의 값은 2019가됩니다.
stringstream 클래스의 다양한 작업을 살펴 보겠습니다.
stringstream을 사용한 삽입 및 추출 작업
이제 데이터를 stringstream 또는 삽입 작업으로 가져 오는 방법과 stringstream에서 데이터를 가져 오는 방법, 즉 stringstream 클래스의 추출 작업을 살펴 보겠습니다.
# 1) 삽입 작업
데이터를 stringstream으로 가져 오기 위해 두 가지 방법을 사용할 수 있습니다.
(i) 삽입 연산자 사용 (<<)
입력을 위해 테스트 데이터를 사용하여 프로그램을 실행해야하는 이유는 무엇입니까?
stringstream 객체 ss가 주어지면 다음과 같이 ss 버퍼에 데이터를 할당 할 수 있습니다.<< operator.
Windows 7 64 비트를위한 최고의 방화벽
stringstream ss; ss<< “hello,world!!”;
'hello, world !!'가 삽입됩니다. stringstream ss로.
(ii) str (string) 함수 사용
str 함수를 사용하여 stringstream 버퍼에 데이터를 할당 할 수도 있습니다. str 함수는 데이터 문자열을 인수로 취하고이 데이터를 stringstream 객체에 할당합니다.
stringstream ss; ss.str(“Hello,World!!”);
# 2) 추출 작업
stringstream에서 데이터를 가져 오거나 추출 작업을 위해 두 가지 방법이 있습니다.
(i) str () 함수 사용
str () 함수를 사용하여 다음과 같이 stringstream에서 데이터를 가져올 수 있습니다.
stringstream ss; ss<<”Hello,World”; cout< (ii) 추출 연산자 사용 (>>)
추출 연산자를 사용하여 다음과 같이 stringstream 데이터를 표시 할 수 있습니다.
Stringstream ss; ss<>str;
위의 코드에 따라 str 변수는 추출 연산자 작업의 결과로 ss 객체의 값을 갖습니다.
아래는 stringstream 클래스의 삽입 및 추출 작업의 사용법을 보여주는 완전한 프로그램입니다.
#include #include #include using namespace std; int main() { //insertion operator << stringstream os; os << 'software '; cout<) stringstream ss; ss<> mystr1; string mystr2; ss>>mystr2; string mystr3; ss>>mystr3; cout< 산출:

위의 프로그램에서 삽입 방법을 먼저 보여주었습니다.<< and str(string) function that reads the string into stringstream.
다음으로, 우리는 stringstream과 연산자 >>에서 데이터를 가져 오는 str () 함수 인 추출 방법의 작동을 보았습니다.
연산자 >>의 경우 초기 stringstream 데이터는 공백으로 구성되고 데이터를 문자열 변수에 할당하므로 첫 번째 공백까지만 읽습니다. 따라서 전체 stringstream 객체를 문자열 데이터로 변환하려면 공백으로 구분 된 데이터를 읽는 데 각각 하나의 변수가 필요합니다.
따라서 위의 프로그램에서 전체 stringstream 개체 데이터를 얻으려면 세 개의 문자열 변수가 필요합니다.
C ++에서 stringstream의 응용
다양한 애플리케이션에서 stringstream 클래스의 용도를 찾을 수 있습니다.
일부 응용 프로그램은 참조를 위해 아래에서 설명했습니다.
# 1) 문자열과 숫자의 변환
stringstream의 삽입 및 추출 연산자는 모든 기본 유형의 데이터에서 작동합니다. 따라서 우리는 문자열을 숫자 유형으로 또는 그 반대로 변환하는 데 사용할 수 있습니다.
모든 이메일 사이트는 무엇입니까
문자열과 숫자 사이의 변환을위한 완전한 프로그램은 다음과 같습니다.
#include #include #include using namespace std; int main() { //Numeric to string stringstream ss; int nInt = 2019; double nDouble = 3.142; ss << nInt << ' ' <> myStr1 >> myStr2; cout<<'The numeric values converted to string:'<> nIntval >> nDoubleval; cout<<'The string values converted to numeric types:'< 산출:

먼저 숫자 값을 문자열 값으로 변환했습니다. 다음으로 숫자 문자열 값을 숫자 값으로 변환합니다.
# 2) 문자열에서 단어 수 세기
stringstream 클래스를 사용하여 문자열의 단어 수를 계산할 수 있습니다. 전체 프로그램은 다음과 같습니다.
#include #include #include using namespace std; int main() { string str = 'Simple Questions To Check Your Software Testing Basic Knowledge'; stringstream s(str); string word; int count = 0; while (s >> word) count++; cout << ' Number of words in given string are: ' << count; return 0; }
산출:
주어진 문자열의 단어 수 : 9
주어진 문자열의 단어 수를 계산하려면 먼저 stringstream 객체로 변환합니다. 그런 다음 루프에서 추출 연산자 (각 공백에서 멈춤)를 사용하여 각 단어를 계산합니다. 마지막으로 총 단어 수의 값을 인쇄합니다.
# 3) 문자열에 개별 단어 주파수 인쇄
C ++에서 stringstream의 다음 응용 프로그램은 주어진 문자열에서 다른 단어의 빈도를 인쇄하는 것입니다. 이것은 주어진 문자열에 특정 단어가 몇 번이나 나타나는지 인쇄 할 것임을 의미합니다.
이를 위해 우리는 문자열의 각 단어를 키로하는 키-값 쌍을 갖는 맵 구조를 유지했으며 해당 값은 해당 특정 단어의 빈도입니다.
전체 C ++ 프로그램은 다음과 같습니다.
#include #include #include #include using namespace std; int main() { string mystr = 'Simple Questions To Check Your Software Testing Knowledge '; map myMap; stringstream ss(mystr); string Word; while (ss >> Word) myMap(Word)++; map::iterator it; for (it = myMap.begin(); it != myMap.end(); it++) cout 산출:

이 프로그램에서 문자열의 각 단어는 맵에 입력되고 각 단어의 개수 또는 빈도는 맵의 해당 키에 대한 값으로 기록됩니다. 이런 식으로 문자열의 모든 단어와 해당 주파수를 출력합니다.
결론
Stringstream 클래스는 문자열 개체에 데이터를 삽입하고 추출하는 데 사용됩니다. 문자열 객체에 대한 스트림 역할을합니다. stringstream 클래스는 입력-출력 채널이 없다는 점을 제외하고 cin 및 cout 스트림과 유사합니다.
우리는 프로그래밍에서 응용 프로그램의 여러 예제와 함께 stringstream 클래스의 다양한 작업에 대해 논의했습니다.
다음 튜토리얼에서는 C ++ 언어의 라이브러리 기능에 대해 자세히 설명합니다.
=> 여기에서 전체 C ++ 교육 시리즈를 찾아보십시오.
추천 도서