c语言输入多个数字每个数字对应一个字母
时间: 2024-05-02 22:21:17 浏览: 83
这道题目需要明确一下输入多个数字对应一个字母的具体规则,例如是通过一个固定的映射表来确定每个数字对应的字母,还是根据用户输入的规则进行动态映射。
假设我们使用一个固定的映射表,可以通过数组来实现。具体代码如下:
```c
#include <stdio.h>
int main() {
int nums[26] = {2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 9, 9, 9, 9}; // 数字对应的字母表
char str[100]; // 存储用户输入的数字串
printf("请输入多个数字:");
scanf("%s", str);
for (int i = 0; str[i] != '\0'; i++) {
if (str[i] >= '0' && str[i] <= '9') { // 判断是否为数字
printf("%c", nums[str[i] - '0' - 1] + 'A' - 1); // 输出对应的字母
}
}
return 0;
}
```
以上代码中,我们通过一个长度为26的数组来存储数字对应的字母,例如数字2对应的字母是A,数字3对应的字母是B,以此类推。然后,我们通过scanf函数获取用户输入的数字串,并遍历每个字符,如果是数字则输出对应的字母。需要注意的是,我们需要将字符型数字转化为整型数字,才能从数组中获取正确的字母。
相关问题
使用c语言编写一个程序,题目描述:编写一个如下声明的递归函数,使得字符串Str倒序,并在主程序中调用该函数测试效果 函数声明:void Reverse(string & Str);输入格式:输入为连续多行的多个字符串,一个字符串一行,每个字符串由阿拉伯数字、字母或特殊字符组成,字符串中不包括空格。输出格式:输出为输入倒序后的字符串,一行输出一个字符串,对应于一行输入字符串的倒序字符串。输出为输入倒序后的字符串,一行输出一个字符串,对应于一行输入字符串的倒序字符串。
以下是使用C语言编写的程序,实现字符串倒序的功能:
```c
#include <stdio.h>
#include <string.h>
// 递归函数,用于实现字符串倒序
void Reverse(char *str)
{
int len = strlen(str);
if (len <= 1) {
return;
}
char tmp = str[0]; // 交换字符串的首尾字符
str[0] = str[len-1];
str[len-1] = tmp;
Reverse(str+1); // 递归调用
}
int main()
{
char str[100];
while (fgets(str, sizeof(str), stdin)) {
str[strlen(str)-1] = '\0'; // 去掉换行符
Reverse(str);
printf("%s\n", str);
}
return 0;
}
```
程序使用了递归函数实现字符串的倒序。在主函数中,使用fgets读取输入字符串,去掉换行符后,调用递归函数Reverse实现倒序,并输出结果。
信息安全很重要,特别是密码。给定一个5位的正整数n和一个长度为5的字母构成的字符串s,加密规则很简单,字符串s的每个字符变为它后面的第k个字符,其中k是n的每一个数位上的数字。第一个字符对应n的万位上的数字,最后一个字符对应n的个位上的数字。简单起见,s中的每个字符为ABCDE中的一个。 输入格式: 测试数据有多组,处理到文件尾。每组测试数据在一行上输入非负的整数n和字符串s。 输出格式: 对于每组测试数据,在一行上输出加密后的字符串。 输入样例: 12345 ABCDE 输出样例: BDFHJ 写出对应c语言代码
#include <stdio.h>
#include <string.h>
int main() {
int n;
char s[6];
while (scanf("%d %s", &n, s) != EOF) {
int len = strlen(s);
for (int i = 0; i < len; i++) {
int k = n % 10; // 取出最后一位数字
if (s[i] + k <= 'E') { // 如果加上k不超过'E',直接加上k
s[i] += k;
} else { // 否则从'A'开始加
s[i] = 'A' + (s[i] + k - 'F' - 1);
}
n /= 10; // n去掉最后一位数字
}
printf("%s\n", s);
}
return 0;
}
阅读全文