C++ 알고리즘 기초17 -문자열 입력받기, 문자열 길이 구하기(length), 공백을 포함한 문자열 입력받기(getline)-

1. 공백없는 문자열 입력받기

 

<string> 헤더를 사용하고, string 자료형을 선언한 변수에 cin 함수로 공백이 없는 문자열을 입력받는다.

 

#include <iostream>
#include <string>
using namespace std;

int main() {

	string str;
	cin >> str;
	cout << str;

	return 0;

}


// 입력
>> hello

// 출력
hello

 

다른 언어에서 인덱싱 하는 것처럼 부분 문자들을 참조하기 위한 인덱싱이 가능함

 

string str = "banana";
cout << str[0];  // b < -문자열의 첫 번째 문자 
cout << str[1];  // a < -문자열의 두 번째 문자
cout << str[2];  // n < -문자열의 세 번째 문자

 

2. length()

 

string 헤더의 length()함수는 string의 길이를 반환하며 시간복잡도 O(1)이다.

 

#include <iostream>
#include <string>
using namespace std;

int main() {
    string str;
    cin >> str;
    cout << str.length();

    return 0;

}


// 입력
>> hello

// 출력
5

 

3. getline()

 

cin함수가 space를 기준으로 입력을 받는데, 만약 space를 포함한 문자열을 하나의 문자열로 입력받고 싶다면,

 

예를 들어 "hello world"가 입력으로 들어올때, 이를 하나의 문자열로 받고 싶다면,

 

getline(cin,str)로 받아준다.

 

getline()은 new line(\n)으로만 구분하여 입력을 받기때문에, space를 포함한 문자열을 하나의 문자열로 입력받는다.

 

#include <iostream>
#include <string>
using namespace std;

int main() {

	string str;

	getline(cin, str);
	cout << str;

	return 0;

}

// 입력
>> hello world

// 출력
hello world

 

4. 연습문제

 

공백을 포함한 문자열이 두 줄 주어졌을 때, 주어진 문자열을 공백을 제외하여 다시 출력하는 프로그램을 작성해보세요.

 

 

공백을 포함한 문자열 두 줄을 a,b로 각각 입력받고,

 

a,b를 각각 순회해서, 공백이 아니면 붙여서 출력해주면 

 

전체에서 보면 공백을 제외하고 두 문자열을 출력하게 될 

 

#include <iostream>
#include <string>
using namespace std;

int main() {
    // 여기에 코드를 작성해주세요.

    string a,b;

    getline(cin,a);
    getline(cin,b);

    for (int i = 0; i < a.length(); i++){

        if (a[i] != ' '){
        cout << a[i];
        }
    }

    for (int j = 0; j < b.length(); j++){

        if (b[j] != ' '){
        cout << b[j];
        }
    }
    return 0;
}
TAGS.

Comments