데일리 codeup/문자열

문자열 리스트 관리_220713

hayo_su 2022. 7. 13. 22:45

문자열 리스트 관리

문자열들의 목록을 관리하기 위해서는, 각 문자열들을 원소로 갖는 리스트를 정의하면 된다. 하나의 문자열의 쓰임은 마치 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;
}