解题思路
- 将人工输入的字符传入字符数组str1
- 将字符数组str1除大写字母字符按顺序传入字符数组str2,大写字母字符转换后传入字符数组str2
- 遍历输出str2中存储的字符
源代码如下:
#include<stdio.h>
#define N 100
int main()
{
char ch;
char str1[N];
char str2[N];
int cnt=0;//计数字符数目(两个字符数组字符数相同)
ch=getchar();
//第一环节:将输入字符传入字符数组str1
for(int i=0;ch!='\n';i++){
str1[i]=ch;
cnt++;
ch=getchar();
}
//第二环节:如果出现大写字母就将其对应转换存入字符数组str2,其他的字符按顺序存入字符数组str2
for (int j = 0; j < cnt; j++)
{
if (str1[j] >= 'A' && str1[j] <= 'Z')
{
str2[j] = 'A' + 'Z' - str1[j]; //相互替换的字符之和是不变常数
}
else
{
str2[j] = str1[j];
}
}
//第三环节:输出
for (int k = 0; k < cnt; k++)
{
printf("%c",str2[k]);
}
return 0;
}