第一周CodeForces-118A题解

本文详细解析了CodeForces-118A题目,介绍了一种使用C++实现的解决方案,该方案通过双层for循环筛选并转换输入字符串中的辅音字母,最终输出符合题目要求的字符串。作者在调试过程中遇到了循环次数问题,但在舍友的建议下,发现可以简化算法,直接在原数组中进行操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题链接:CodeForces-118A

问题简述

将输入的一串字符串中的元音字母全部删去,将剩余的辅音字母大写的变为小写,小写的保留不变,并且在每个辅音字母前加上字符‘.’,最后输出这一串字符串。

思路及解题步骤

用for循环将输入字符串中辅音字母挑选出来并且大写辅音字母变成小写,放到另一个字符数列中,并且每个辅音字母前加上‘.’,最后输出这一字符数组。

AC通过的C++语言程序如下:

#include<iostream>
using namespace std;
int main()
{
	char z[13] = { 'a','A','o','O','y','Y','e','E','u','U','i','I' };
	char a[101];
	char b[201];
	int n = 0;
	cin >> a;
	for (int i = 0; a[i] != '\0'; i++)
	{
		int k = 1;
		for (int j = 0; j <= 11; j++)
			if (a[i] == z[j]) k = 0;
		if(k==1)
		{
			if (a[i] < 97) a[i] = a[i] + 32;
			b[2*n] = '.';
			b[2*n+1] = a[i];
			n++;
		}
	}
	for (int i = 0; i < 2 * n; i++)
		cout << b[i];
	return 0;
}

编写过程总结及想法

在调试过程中出现了许多错误,在运用for循环中没有想清楚循环次数,导致调试时出现错误的结果,希望能吸取教训。编写完成后在舍友的启发下,其实并不用建立第二个字符数组,其实总结在所输入的字符数组中挑选后改为条件所需,然后一个个输出出来就好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值