【问题描述】:给定一个字符串,请将其中的英文字母的大小写进行转换
输入:第一行是一个整数N,表示样例的个数,以后每行一个字符串,字符串由字母、数字、符号甚至空格组成,长度不超过200
输出:每行一个输出转换后的结果
C++
思路:读取一个字符串,用for循环一个一个对字符进行判断,如果是小写,则把Ascii码减32;如果是大写,Ascii码加32;
#include <stdio.h>
#include <stdlib.h>
#include <String.h>int main(){
int i,j,k,n,len;
char tmp[200];
scanf("%d",n);
for(i=0;i<n;i++){
gets(tmp);//gets():从流中读取字符串
len=strlen(tmp);//strlen():获取数组的长度
for(j=0;j<len;j++){
if(tmp[j]>='a'&&tmp[j]<='z')tmp[j]=tmp[j]+32;
else if(tmp[j]>='A'&&tmp[j]<='Z')tmp[j]=tmp[j]-32;
else tmp[j]=tmp[j];
}
for(j=0;j<len;j++)
putchar(tmp[j]);
if(j>0)print("\n");
}
return 0;
}
java
import java.util.*;
public class Solution(){
public static void main(String[] args){
Scanner input=new Scanner(System.in);
int n=input.nextInt();
n+=1;
while(n+1>=0){
String s=input.nextLine();//为了能读取空格
StringBuffer str=new StringBuffer();
for(int i=0;i<s.length();i++){
if(s.charAt(i)<='z'&&s.charAt(i)>='a')
str.append(Character.toUpperCase(s.charAt(i)));
else if(s.charAt(i)<='Z'&&s.charAt(i)>='A')
str.append(Character.toLowerCase(s.charAt(i)));
else str.append(s.charAt(i));
}
System.out.print(str.toString());
n--;
}
}
}