编写一个译码程序,把一个英语句子(包含大小写英文字母)译成数字代码。译码规则是以数字1代替字母a,数字2代替字母b,……,26代替字母z;大写字母也按相同规则处理,即用1~26代替A~Z,如遇空格则打印一个星号‘*’,英文句子以‘.‘结束。用C语言循环结构。
时间: 2024-10-12 12:11:38 浏览: 68
哎呀.zip_设计一个哈夫曼编码、译码系统
5星 · 资源好评率100%
你可以创建一个简单的C程序,使用ASCII值来实现这个译码规则。以下是满足要求的一个示例:
```c
#include <stdio.h>
#include <ctype.h>
int get_code(char c) {
if (isalpha(c)) { // 判断字符是否是字母
c = tolower(c); // 转换为小写
return c - 'a' + 1; // 字母转数字,'a'对应1,'z'对应26
} else if (isspace(c)) { // 若为空格
return '*'; // 输出星号
}
return c; // 非字母非空格的字符保持不变
}
void decode_sentence(const char *sentence) {
while (*sentence != '.') { // 遍历直到遇到句点
printf("%d", get_code(*sentence++)); // 打印每个字符的数字代码
}
printf("*\n"); // 句点后输出星号
}
int main() {
char input[100];
printf("请输入英语句子(以'. '结束): ");
fgets(input, sizeof(input), stdin); // 读取用户输入
input[strcspn(input, "\n")] = '\0'; // 移除行尾的换行符
decode_sentence(input); // 解码并输出
return 0;
}
阅读全文