공백없는 문자열, 공백 있는 문자열_220713
공백없는 문자열 입력받아 출력하기
앞서 문자열의 경우 <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;
}