문제에 운동 문자열 2 문자열 작업 솔루션을 얻기

: 용으로 작성된 http://codeforces.com/problemset/problem/118/A

제목 설명

당신이 다음을 수행해야하고, 작업의 결과를 출력, 당신에게 문자열을 문자열 보내기

  1. 문자열의 모든 모음을 삭제;
  2. 문자열의 각 자음 문자의 앞에 추가됩니다 "."
  3. 문자열은 모두 대문자 소문자를 낮출 수

이 질문 교장은 왕이 인식과 영어권 국가를 때문에 모음을 싫어 러시아 사람들의 맨 위에 codeforces에서 번역 된 것을 주목해야한다.
러시아는 "A", "O"이다 "Y", "E", "U", "I" 모음 6 개 개의 영어 단어와 여섯 개 개의 영어 단어 외에, 다른 (20) 영어 단어는 자음입니다. 그것은 주목해야한다!
이 작업, 출력 문자열 변환의 전체 결과.

입력 형식

입력 한 문자열 1에서 100 사이의 문자열 길이를 포함합니다.

출력 형식

문자열 변환의 출력.

샘플 입력 1

tour

출력 샘플 1

.t.r

샘플 입력 2

Codeforces

출력 샘플 2

.c.d.f.r.c.s

입력 샘플 3

aBAcAba

출력 샘플 3

.b.c.b

주제 분석

우리는 문자열 C의 각 문자를 통과하기 만하면됩니다.
당신이 만약 c가 대문자입니다 발생할 경우 우선, 우리는 먼저 소문자로 변환,
다음, 우리가 모음 인 경우,이 제거되고, 소문자를 판단 할 수 있도록,
그렇지 않으면 (자음)을 것 " . 「+ C는 결과 문자열에 추가된다.
마지막으로, 그 결과 스트링을 출력한다.

다음을 달성하기 위해 코드 문자 배열을 사용하여 :

#include <bits/stdc++.h>
using namespace std;

char ch[110];
const char vowels[] = "aoyeui";

int main() {
    cin >> ch;
    for (int i = 0; ch[i]; i ++) {
        if (ch[i] >= 'A' && ch[i] <= 'Z') ch[i] += 32;
        bool flag = false;
        for (int j = 0; j < 6; j ++) {
            if (ch[i] == vowels[j]) {
                flag = true;
                break;
            }
        }
        if (flag == false) cout << "." << ch[i];
    }
    cout << endl;
    return 0;
}

다음을 달성하기 위해 코드 문자열을 사용 :

#include <bits/stdc++.h>
using namespace std;

string s;
const string vowels = "aoyeui";

int main() {
    cin >> s;
    int n = s.length();
    for (int i = 0; i < n; i ++) {
        char c = s[i];
        if (c >= 'A' && c <= 'Z') c += 32;
        bool flag = false;
        for (int j = 0; j < 6; j ++) {
            if (c == vowels[j]) {
                flag = true;
                break;
            }
        }
        if (flag == false) cout << "." << c;
    }
    cout << endl;
    return 0;
}

추천

출처www.cnblogs.com/zifeiynoip/p/11450563.html