L1-007念数字——字符串数组的应用
#include <stdio.h> #include <string.h> int main() { // 定义一个字符串数组,存储数字字符对应的拼音 const char *digit_to_pinyin[] = { "ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu" }; char num[100]; // 创建一个字符数组来存储输入的整数,假设最多输入99个字符 scanf("%s", num); // 使用scanf读取输入的整数,作为字符串存储 // 检查输入的第一个字符是否是负号 if (num[0] == '-') { // 如果是负数,先输出 "fu" printf("fu "); // 从输入字符串的第二个字符开始,逐个处理数字部分 for (int i = 1; i < strlen(num); i++) { // 使用num[i] - '0'将字符数字转换为整数,找到对应的拼音 printf("%s", digit_to_pinyin[num[i] - '0']); // 如果当前数字不是最后一个数字,就输出空格 if (i < strlen(num) - 1) { printf(" "); } } } else { // 如果是正数,则从第一个字符开始处理 for (int i = 0; i < strlen(num); i++) { // 将每个数字字符转换为拼音并输出 printf("%s", digit_to_pinyin[num[i] - '0']); // 如果当前数字不是最后一个数字,就输出空格 if (i < strlen(num) - 1) { printf(" "); } } } return 0; // 返回0表示程序执行完毕 }
const char *digit_to_pinyin[]
:定义一个字符串数组,存储数字字符 0
到 9
对应的拼音。
digit_to_pinyin[num[i] - '0']
:通过字符 num[i]
减去 '0'
转换为数字,然后通过索引查找对应的拼音。