CodeForces - 118A 字符串处理入门 难度:C++入门 复杂度:一般 翻译难度:有点难...

Petya开始上编程课了。第一堂课他的任务是写一个简单的程序。

这个程序应该做到以下事情:给定一个由大小写字母组成的字符串,使它:

1.删除所有元音(包括大小写)

2.在每个辅音前插入一个字符"."

3.将所有大写辅音字母改为小写

(此处规定,)元音字母是A,O,Y,E,U,I,剩下的为辅音。

仅输入一个字符串,程序处理完初始字符串之后也应以一个字符串为输出结果

帮助Petya完成这个简单的任务吧。

第一次循环对输入的字符串逐个字符进行检查,每当遇到元音字母则删去(将该字母后方(包括该字母)所有字符从左往右逐一赋值为它右方的字符),然后继续从被删去字母所在的位置开始检查;遇到辅音字母则先检查它是否为大写(如果是则改为小写),然后从被检查位置的下一位置开始检查。此时得到的字符串已经达成第1和第3点要求。创建一个新字符数组(长度要为原字符数组的两倍左右),其偶数项赋值为'.',奇数项则按序拷贝此前得到的字符串,新字符串则又达成第2点要求,输出新字符串即可。

#include<iostream>
using namespace std;
int main()
{
	char st[101] = "\0";
	int n = 0;
	cin >> st;
	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 i = n;
			while (st[i] != '\0') {
				st[i] = st[i + 1];
				i++;
			}
			break;
		}
		default:
		{
			if (st[n] <= 90)
			{
				st[n] += 32;
			}
			n++;
			break;
		}
		}
	}
	char a[201] = "\0";
	for (int i = 0; st[i / 2] != '\0'; i += 2)a[i] = '.';
	for (int i = 1; st[(i - 1) / 2] != '\0'; i += 2)a[i] = st[(i - 1) / 2];
	cout << a;
	return 0;
}

P.S.用vs编译c++程序时习惯在main函数末尾或return前一行加一句system("pause");以防控制台窗口闪退,这句system("pause");在交题时要记得删掉。

转载于:https://my.oschina.net/u/4035395/blog/3011130

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值