这是课件里看到的:一维数组的练习题 T T
Description
输入一数字,用其控制一个数组的长度,而后将数组中的小写字母转换成大写字母,大写字母转换成小写字母,其余字符不变。
Input
连续输入多个测试数据:输入的第一行为一个整数n,接下来有一个由n个字符组成的字符串输入0控制程序结束。
Output
每一行输出一组测试数据对应的结果,依次输出转换后的字符串。
输入一数字,用其控制一个数组的长度,而后将数组中的小写字母转换成大写字母,大写字母转换成小写字母,其余字符不变。
Input
连续输入多个测试数据:输入的第一行为一个整数n,接下来有一个由n个字符组成的字符串输入0控制程序结束。
Output
每一行输出一组测试数据对应的结果,依次输出转换后的字符串。
Sample Input
10
ASXZXCaz-+
10
azsx90AZKJ
0
Sample Output
asxzxcAZ-+
AZSX90azkj
源代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
char *s, *p, c;
int n;
while (scanf("%d", &n)==1 && n!=0){
getchar();
s = (char*) malloc(n+1); //用动态数组来定义数组;
gets(s);
p = s;
while ((c=*p) != '\0')
{
printf("%c", c>='A'&&c<='Z' || c>='a'&&c<='z' ? c^0x20 :c); //判断并转换大小写的算法;
p++;
}
printf("\n");
free(s);
}
return 0;
}