Code Force 118 A String Task (简单模拟)

Petya started to attend programming lessons. On the first lesson his task was to write a simple program. The program was supposed to do the following: in the given string, consisting if uppercase and lowercase Latin letters, it:
deletes all the vowels,
inserts a character “.” before each consonant,
replaces all uppercase consonants with corresponding lowercase ones.
Vowels are letters “A”, “O”, “Y”, “E”, “U”, “I”, and the rest are consonants. The program’s input is exactly one string, it should return the output as a single string, resulting after the program’s processing the initial string.
Help Petya cope with this easy task.
Input
The first line represents input string of Petya’s program. This string only consists of uppercase and lowercase Latin letters and its length is from 1 to 100, inclusive.
Output
Print the resulting string. It is guaranteed that this string is not empty.
问题链接https://vjudge.net/problem/CodeForces-118A
问题简述:输入包含1-100的一串字母,包含大写字母跟小写字母,删除所有元音字母,在所有辅音字母前面加个.,把所有的大写辅音字母用相应的小写字母替代,程序输出是一个字符串,输出单个的字符串,在程序处理最初的字符串后产生
问题分析:用char数组将输入的字母字符串存储,用循环语句中的switch语句逐个判断字母是否为元音字母,如果是则把数组中的元音字符后的元素全部向前移动一位(相当于删除),再判断是否为大写辅音,如是则用小写字母的ascill码值替换,最后建立一个201存储容量大小的char数组,每将一个原本数组中的元素添加进新数组前加一个.即可
AC通过的C++语言程序如下:

#include <iostream>
using namespace std;
int main()
{
    static char st[101];
    cin >> st;
    int n = 0;
    while (st[n] != '\0')
    {
            switch (st[n])
            {
            case 65:case 69:case 73:case 79:case 85:case 89:case 97: case 101:case 105: case 111:case 117:case 121:
                {
                     int e = n;
                     while (st[e] != '\0')
                     {
                         st[e] = st[e + 1];
                         e++;
                     }
                     break;
                }
                 default:
                {
                     if (st[n] <= 90)
                     {
                         st[n] = st[n] + 32;
                     }
                     n++;
                     break;
                }
            }
    }
    char nw[201] = {'\0'};
    int k = 0, j = 0;
    while (st[k] != '\0')
    {
        nw[j] = 46;
        nw[j + 1] = st[k];
        k++;
        j = j + 2;
        
    }
    cout << nw;
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值