데일리 codeup/문자열

공백없는 문자열, 공백 있는 문자열_220713

hayo_su 2022. 7. 13. 22:37

공백없는 문자열 입력받아 출력하기

앞서 문자열의 경우 <string> 헤더에 포함되어 있는 string 자료형에 입력받아 저장할 수 있다. 공백이 없는 문자열은 cin 함수를 통해 입력받을 수 있다.

입력으로 주어진 문자열의 길이는 string 헤더의 length() 함수를 이용하면 쉽게 구할 수 있다.

string str;
cin >> str;
cout<< str.length();

문자열 두번 출력하기

문자열이 주어지면 2번에 걸쳐 해당 문자열을 출력하는 프로그램을 작성해보세요.

#include <iostream>
#include <string>
using namespace std;
int main(){
    string str;
    cin >> str;
    cout << str << endl;
    cout << str;
    return 0;
}

문자열의 길이 출력하기

두 개의 문자열이 주어지면 그 두 문자열의 길이를 합하여 출력하는 프로그램을 작성해보세요.

#include <iostream>
#include <string>
using namespace std;
int main(){
    string str1,str2;
    cin >> str1;
    cin >> str2;
    cout << str1.length()+str2.length();
    return 0;
}

더 긴 문자열

두 개의 단어가 주어지면 길이가 더 긴 단어와 길이를 출력하는 프로그램을 작성해보세요.

#include <iostream>
#include <string>
using namespace std;
int main(){
    string str1,str2;
    cin>>str1;
    cin>>str2;
    if(str1.length()==str2.length())    cout<<"same";
    else if(str1.length()>str2.length())    cout<<str1<<' '<<str1.length();
    else    cout<<str2<<' '<<str2.length();
    return 0;
}

가장 짧은 문자열

3개의 문자열이 주어졌을 때, 가장 긴 문자열과 가장 짧은 문자열의 길이 차가 얼마인지 구해보는 프로그램을 작성해보세요.

#include <iostream>
#include <string>
using namespace std;
int main(){
    string str1,str2,str3;
    int a,b,c,tmp1,tmp2;
    cin >> str1 >> str2 >> str3;
    a = str1.length();
    b = str2.length();
    c = str3.length();
    tmp1 = b>c?b:c;
    tmp2 = b<c?b:c;
    cout<<(a>tmp1?a:tmp1)-(a<tmp2?a:tmp2);
}

공백(space)가 포함된 문자열 입력받아 출력하기

만약 space 를 포함한 문자열을 한 개의 string 문자열에 받고 싶다면, 문자열 구분단위를 space와 new line 이 아닌 오직 new line 만으로 바꿔주어야 한다.

string 헤더의 getline() 함수를 이용하면 이를 편하게 할 수 있다. getline 함수는 문자열을 new line 으로만 구분하여 입력받으므로, space를 포함한 문자열을 입력으로 받을 수 있습니다.

getline(cin, 받고자 하는 문자열)

문자열 범위 출력하기

공백이 들어 있을 수 있는 문자열이 주어지면 3번째 문자부터 10번 문자까지 순서대로 출력하는 프로그램을 작성해보세요.

#include <iostream>
#include <string>
using namespace std;
int main() {
    string str;
    getline(cin,str);
    for(int i=2;i<10;i++)  cout<<str[i];
    return 0;
}

문자 개수 세기

첫 번째 줄에 공백을 포함할 수도 있는 문자열이 주어지고, 두 번째 줄에 소문자 알파벳이 주어지면 앞서 주어진 문자열에 해당 소문자 알파벳이 몇 개 있는지 세어 출력하는 프로그램을 작성해보세요.

#include <iostream>
#include <string>
using namespace std;
int main(){
    int cnt = 0;
    char tmp;
    string str;
    getline(cin,str);
    cin >> tmp;
    for(int i=0;i<str.length();i++){
        if(str[i]==tmp) cnt++;
    }
    cout<<cnt;
    return 0;
}

공백을 기준으로 출력

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

#include <iostream>
#include <string>
using namespace std;
int main(){
    string str1,str2;
    getline(cin,str1);
    getline(cin,str2);
    str1 += str2;
    for(int i=0;i<str1.length();i++){
        if(str1[i]==' ')   continue;
        cout<<str1[i];
    }
    return 0;
}