본문 바로가기
C++/알고리즘 관련

[기본문법] 문자열

by 위니밍 2025. 6. 1.
반응형

* 토큰화

vector<sting> words;
istringstream sub_str(str); //str 있다는 가정하에
string word;

while(getline(sub_str, word, ' '))
    {
        words.push_back(word);
    }

 

* transform으로 문자열 대문자화(toupper)

#include <algorithm>

transform(str.begin(), str.end(), str.begin(), ::toupper);

 

* fgets()

char str[100];
fgets(str, sizeof(str), stdin);

// => hello world\n\0
// 개행문자와 null문자 둘다 입력됨

 

* 문자 토큰 개수 확인 함수(strtok)

char* p_str = strtok(str, " ");
while (p_str != NULL) {
	totalCount++;
	p_str = strtok(NULL, " ");
}

 

* C++에서 문자열 받는방법

    1. cin (c++ 정석)

    2. char 배열로 받기

char str[1001]; //최대 문자열크기 +1
scanf("%s", str);

    3. getline 으로 받기

cin >> str;		// 공백(space)이전까지의 문자열을 입력받는다.
getline(cin, str);	// 개행('\n')이전까지의 문자열을 입력받는다.
getline(cin, str, 'a')	// 'a'문자 이전까지의 문자열을 입력받는다.

      3. getline 으로 받기 + 토큰화

//앞쪽부터 3개의 토큰 가져오기
//다른경우에는 while(--)로 가져오기

string str="";
getline(cin, str);

istringstream sub_str(str);
string buffer;
for (int j = 0; j < 3; j++)
{
	getline(sub_str, buffer, ' ');
	arr.push_back(buffer);
}
반응형

'C++ > 알고리즘 관련' 카테고리의 다른 글

[기본문법] 1차원 배열  (1) 2025.05.30
[백준] 2588. 곱셈  (0) 2025.04.15