C#编程问题
用户输入单个字符,如果用户输入的是a-z中的任意一个字母,那么将其转化为相对应的大写字母输出,如果输入的是A-Z中的一个任意字母,那么将其转化为相对应的小写字母输出,如果用户在输入过程中接受到来了非英文字母时,则立即抛出异常,要求用户在程序中捕获该异常,并输出“输出错误,请重新输入。
追问:大哥,会的话帮忙写写吧,我期终考试题。我不会啊。
用户输入单个字符,如果用户输入的是a-z中的任意一个字母,那么将其转化为相对应的大写字母输出,如果输入的是A-Z中的一个任意字母,那么将其转化为相对应的小写字母输出,如果用户在输入过程中接受到来了非英文字母时,则立即抛出异常,要求用户在程序中捕获该异常,并输出“输出错误,请重新输入。
追问:大哥,会的话帮忙写写吧,我期终考试题。我不会啊。
答案:using System;
class Test {
static void Main()
{
int c;
while (true) {
try {
if (Char.IsLetter((char)(c = Console.Read())))
Console.Write((char)(c ^ 32));
else if ("'\n\t\r'".IndexOf((char)c) == -1)
throw new Exception("输出错误,请重新输入。");
else if(c == (int)'\n')
Console.WriteLine();
} catch (Exception e) {
Console.WriteLine(e.Message);
}
}
}
}查一查ASCII表吧。每个英文字母在表内都是固定的数字值,只要检查一下输入的字符相对的unsigned char 值,看在那个范围内就可以了。如果做小写到大写的转换,那就是加或减少一个固定值就可以了。