用C++实现:各种字符之间的循环转换
输入一个字符串
要求:1.若输入A则输出Z,若输入B则输出Y,以此类推;小写字母同理
2.若输入0则输出9,输入1则输出8,以此类推(不含负数)
3.其他非字母数字类字符,输出其ASC||码的16进制形式
提示:0-9的ASC||值为48-57,A-Z的ASC||值为65-90,a-z的ASC||值为97-122
1 #include<iostream> 2 #include<cstring> 3 using namespace std; 4 int main(void) 5 { 6 char* arr = new char[10000]; //定义一个足够大的数组 7 cin >> arr; 8 int length_arr = strlen(arr); //计算输入字符串长度 9 for (int i = 0; i < length_arr; i++) 10 { 11 if (arr[i] >= '0' && arr[i] <= '9') 12 { 13 arr[i] = 105 - arr[i]; 14 cout << arr[i]; 15 } 16 else if (arr[i] >= 'A' && arr[i] <= 'Z') 17 { 18 arr[i] = 155 - arr[i]; 19 cout << arr[i]; 20 } 21 else if (arr[i] >= 'a' && arr[i] <= 'z') 22 { 23 arr[i] = 219 - arr[i]; 24 cout << arr[i]; 25 } 26 else 27 { 28 cout << hex << (int)arr[i]; //直接用hex16进制输出 (注意,不要用中文格式输入符号,否则有些无法识别) 29 } 30 } 31 return 0; 32 }
思路:就是将arr数组里的每一位都按要求来转换,转换一位输出一位。运用ASC||码来进行字符和整型之间的转换。最后一步直接用hex16进制进行输出,也极大的减少了代码量。
补充:oct是8进制输出,·dec是10进制输出,hex是16进制输出。使用方法类似上面代码即可。也可以分开写,即:
cout<<hex;
cout<<(int)arr[i];

浙公网安备 33010602011771号