问题链接: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循环中没有想清楚循环次数,导致调试时出现错误的结果,希望能吸取教训。编写完成后在舍友的启发下,其实并不用建立第二个字符数组,其实总结在所输入的字符数组中挑选后改为条件所需,然后一个个输出出来就好。