문자열 리스트 관리_220713
문자열 리스트 관리
문자열들의 목록을 관리하기 위해서는, 각 문자열들을 원소로 갖는 리스트를 정의하면 된다. 하나의 문자열의 쓰임은 마치 1차원 배열과 같고, 문자열 리스트의 경우에는 마치 2차원 배열과 같이 동작한다.
string arr[3] = { "banana", "apple", "pizza" };
cout << arr[0][0]; //banana 의 b
cout<<arr[2][4]; //pizza의 a
문자열의 특정 위치 찾기 2
5개의 문자열을 "apple", "banana", "grape", "blueberry", "orange"로 초기화 한 후, 영문자 하나가 주어졌을때 5개의 문자열들 중 세 번째나 네 번째 문자와 일치하는 문자열들을 모두 찾아내고 이러한 문자열의 개수를 출력하는 프로그램을 작성해보세요.
#include <iostream>
#include <string>
using namespace std;
int main(){
int cnt = 0;
char a;
string str[5] = {"apple", "banana", "grape", "blueberry", "orange"};
cin >> a;
for(int i=0;i<5;i++){
if(str[i][2]==a||str[i][3]==a){
cout<<str[i]<<endl;
cnt++;
}
}
cout<<cnt;
return 0;
}
문자열 역순으로 출력하기
알파벳으로 이루어진 4개의 문자열이 주어지면 입력받은 역순으로 출력하는 프로그램을 작성해보세요.
#include <iostream>
#include <string>
using namespace std;
int main(){
string str[4];
for(int i=0;i<4;i++) cin>>str[i];
for(int j=3;j>=0;j--) cout<<str[j]<<endl;
return 0;
}
문자열의 총 길이 구하기
알파벳으로 이루어져 있고 공백을 포함한 10개의 문자열이 주어지면 모든 문자열의 총 길이의 합을 구하여 출력하는 프로그램을 작성해보세요.
#include <iostream>
#include <string>
using namespace std;
int main(){
string arr[10];
int cnt = 0;
for(int i=0;i<10;i++){
cin>>arr[i];
cnt += arr[i].length();
}
cout<<cnt;
return 0;
}
문자열 길이의 합
첫 번째 줄에 숫자 n이 주어지고, 그 다음 n개의 줄에 걸쳐 n개의 문자열이 주어질 때, 모든 문자열 길이의 합과 주어진 문자열 중 첫 번째 문자로 'a'가 몇 번 나왔는지를 출력하는 프로그램을 작성해보세요.
#include <iostream>
#include <string>
using namespace std;
int main(){
int n, sum = 0, cnt = 0;
cin >> n;
string arr[n];
for(int i=0;i<n;i++){
cin >> arr[i];
}
for(int i=0;i<n;i++){
sum += arr[i].length();
if(arr[i][0] == 'a') cnt ++;
}
cout << sum << ' ' << cnt;
return 0;
}
단어로 구분하기
알파벳으로 이루어져 있고 공백을 포함한 10개의 문자열이 주어지면 공백으로 구분하여 단어로 나누어 출력하는 프로그램을 작성해보세요.
#include <iostream>
#include <string>
using namespace std;
int main(){
string arr[10];
for(int i=0;i<10;i++) cin>>arr[i];
for(int j=0;j<10;j++) cout<<arr[j]<<endl;
return 0;
}
단어로 구분하기 2
알파벳으로 이루어져 있고 공백을 포함한 10개의 문자열이 주어지면 공백으로 구분하여 홀수 번째 문자열만 출력하는 프로그램을 작성해보세요.
#include <iostream>
#include <string>
using namespace std;
int main(){
string arr[10];
for(int i=0;i<10;i++) cin>>arr[i];
for(int j=0;j<10;j+=2) cout<<arr[j]<<endl;
return 0;
}
단어로 구분하기 3
알파벳으로 이루어져 있고 공백을 포함한 10개의 문자열이 주어지면 공백으로 구분하여 입력 순서의 반대 순서로 출력하는 프로그램을 작성해보세요.
#include <iostream>
#include <string>
using namespace std;
int main(){
string arr[10];
for(int i=0;i<10;i++) cin>>arr[i];
for(int j=9;j>=0;j--) cout<<arr[j]<<endl;
return 0;
}
특정 문자로 끝나는 문자열
알파벳으로 이루어진 10개의 문자열과 문자가 하나 주어지면 그 문자로 끝나는 문자열들을 입력에서 주어진 순서대로 출력하는 프로그램을 작성해보세요.
#include <iostream>
#include <string>
using namespace std;
int main(){
string arr[10];
char a;
int cnt = 0;
for(int i=0;i<10;i++) cin>>arr[i];
cin>>a;
for(int j=0;j<10;j++){
if(a==arr[j][arr[j].length()-1]){
cout<<arr[j]<<endl;
cnt ++;
}
}
if(cnt==0) cout<<"None";
return 0;
}
특정 문자로 시작하는 문자열
알파벳 소문자로 이루어진 n개의 문자열이 주어지고, 알파벳 한 개가 주어졌을 때, 해당 알파벳으로 시작하는 문자열의 개수와 그 문자열들의 길이의 평균을 구하는 프로그램을 작성해보세요.
입력
4
code
codetree
coding
leebros
c
출력
3 6.00
#include <iostream>
#include <string>
using namespace std;
int main(){
int n,sum = 0,cnt = 0;
char a;
cin >> n;
string arr[n];
for(int i=0;i<n;i++) cin >> arr[i];
cin >> a;
for(int i=0;i<n;i++){
if(arr[i][0] == a){
sum += arr[i].length();
cnt++;
}
}
cout<<fixed;
cout.precision(2);
cout<<cnt<<' '<<(double)sum/cnt;
return 0;
}