118A题目网址
题目解析
1.输入一个英语字符串,要求把其中的元音字母删去(元音是字母“A”、“O”、“Y”、“E”、“U”、“I”包括大小写,其余的是辅音),把剩余的辅音字母全部变为小写,并在每一个辅音字母之前加上一个.
 如:
 输入:
 Codeforces
 输出:
 .c.d.f.r.c.s
 2.使用在for循环中使用字符数组录入每一个英语字符串,遇到辅音字母,把大写字母转为小写(initial[i]+32),输出时在前面加上.
 如:
 initial[i]+=32;
 printf(".%c",initial[i]);
 3.陷阱:
 1)本题必须对字符串数组进行初始化,否则提交输出时会出现乱码
 char initial[100]={’\0’};
 2)本题目不能使用strlen(initial)去当作for循环的结束条件,因为此时initial没有进行数据录入,只有使用for(i=0;i<100;i++)
知识点
1.字符处理
 在C语言中对逐个字符进行处理
 输入:
 scanf("%c",&init[i]);
 输出:
 printf("%c",init[i]);
#include<stdio.h>
int main()
{char ch[5]; for (int i = 0; i < 5; i++){scanf("%c", &ch[i]);}for (int i = 0; i < 5; i++){printf("%c", ch[i]);}system("pause");return 0;
在C语言中对整个字符进行处理
 不需要&
 输入:
 scanf("%s",init);
 输出:
 printf("%s",init);
#include<stdio.h>
int main()
{char ch[5];scanf("%s", ch);printf("%s", ch);//无需&system("pause");return 0;
}
2.大写字母转小写字母
 1)大写字母范围:
 initial[i]>=‘A’&&initial[i]<=‘Z’
 2)小写字母范围:
 initial[i]>=‘a’&&initial[i]<=‘z’
 3)大写字母转小写字母(a比A的ASCII码大32)
 initial[i]+=32;
 4)小写字母转大写字母
 initial[i]-=32;
3.字符串数组
 C语言没有字符串,所以使用字符数组存放字符串,最后结尾为’\0’,所以使用initial[i]==’\0’去判断是否到字符串结尾
代码
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
//元音是字母“A”、“O”、“Y”、“E”、“U”、“I”,其余的是辅音
int main()
{char initial[100]={'\0'};int i;for(i=0;i<100;i++){scanf("%c",&initial[i]);if(initial[i]=='a'||initial[i]=='A'||initial[i]=='o'||initial[i]=='O'||initial[i]=='y'||initial[i]=='Y'||initial[i]=='e'||initial[i]=='E'||initial[i]=='u'||initial[i]=='U'||initial[i]=='i'||initial[i]=='I'){}else{if(initial[i]>='A'&&initial[i]<='Z'){initial[i]+=32;printf(".%c",initial[i]);}else if(initial[i]>='a'&&initial[i]<='z'){printf(".%c",initial[i]);}else if(initial[i]=='\0'){printf("\n");}}}return 0;
}