从键盘输入一个小写英文字母,将其转换为大写英文字母利用ascll值来做
#!/bin/bash
echo "SHELL编程(利用ascll码值)从键盘输入一个小写英文字母,将其转换为大写英文字母!"
echo "从键盘输入一个小写英文字母,将其转换为大写英文字母利用ascll值来做!"
echo "请输入一个小写的英文字母:"
# "-n 仅能输入一个字符,-t 限制时间为5s,-s 输入的不显示"
read -n 1 -t 5 -s x
echo $x
awk -v t=$x;
case $x in
"a")
echo "A";;
"b")
echo "B";;
"c")
echo "C";;
"d")
echo "D";;
"e")
echo "E";;
"f")
echo "F";;
"g")
echo "G";;
"h")
echo "H";;
"i")
echo "I";;
"j")
echo "J";;
"k")
echo "K";;
"l")
echo "L";;
"m")
echo "M";;
"n")
echo "N";;
"o")
echo "O";;
"p")
echo "P";;
"q")
echo "Q";;
"r")
echo "R";;
"s")
echo "S";;
"t")
echo "T";;
"u")
echo "U";;
"v")
echo "V";;
"w")
echo "W";;
"x")
echo "X";;
"y")
echo "Y";;
"z")
echo "Z";;
*)
echo "input err."
esac
做了一会儿,发现这道题需要解决的关键难点便是如何用shell将输入进来的字符(串)转换成整数,然后进行相加减,虽然字符本来就是小整数,但是做着你可能会发现报这个错:test: s: integer expression expected,也就是期望是整数,我用了以下 awk,没做出来,你可以试试;最后用了穷举,可能没利用到ASCII,如果博主有更好的答案,欢迎告知我,谢谢,还有一个思路就是写一个c文件,然后用shell脚本来操作这个c文件,传一个参数进去得出结果,另外,据我所知,shell本来就是用来操作各种文件的,也不知道那位大佬想出了这个"妖魔鬼怪"(😂)
#include <stdio.h>
//编程从键盘输入一个小写英文字母,将其转换为大写英文字母,将转换后的大写英文字母及其十进制的ASCII码值显示在屏幕上。
int main(void)
{
printf("请输入一个小写字母:\n");
char a,b;
scanf("%c",&a);
if(a>='a'&&a<='z')
{
b = a-32;
}
else
printf("输入有误!\n");
printf("大写英文字母为:%c\n",b);
printf("对应十进制ASCII码为:%d\n",b);
return 0;
}