念整数
题目:你的程序要读入一个整数,范围是[-100000,100000]。然后,用汉语拼音将这个整数的每一位输出出来。
如输入1234,则输出:
yi er san si
注意,每个字的拼音之间有一个空格,但是最后的字后面没有空格。当遇到负数时,在输出的开头加上“fu”,如-2341输出为:
fu er san si yi
输入格式:
一个整数,范围是[-100000,100000]。
输出格式:
表示这个整数的每一位数字的汉语拼音,每一位数字的拼音之间以空格分隔,末尾没有空格。
输入样例:
-30
输出样例:
fu san ling
#include <stdio.h>
#include <string.h> // strlen()函数所需头文件
int main()
{
char num[10];
scanf("%s", num);
int i;
for (i = 0; i < strlen(num); i++)
{
switch(num[i])
{
case '-': printf("fu");
break;
case '0': printf("ling");
break;
case '1': printf("yi");
break;
case '2': printf("er");
break;
case '3': printf("san");
break;
case '4': printf("si");
break;
case '5': printf("wu");
break;
case '6': printf("liu");
break;
case '7': printf("qi");
break;
case '8': printf("ba");
break;
case '9': printf("jiu");
break;
}
if (i < strlen(num) - 1)
printf(" ");
}
return 0;
}
自我总结:刚开始,我的惯性思维是将num定义为int型,之后用数组将num个各位数的数字存起来,再逆向for循环,通过switch-case语句输出数字的拼音,挺复杂的一个过程。后来参考了PTA练习:念数字(C语言)的代码,他将num定义为char字符型,之后用strlen()函数解决所有的问题,代码简短且思路清晰,很值得借鉴👍!
知识点小结
strlen()函数:
1、头文件:#include <string.h>
2、含义:strlen()用来计算指定的字符串s 的长度,不包括结束字符"\0"。
3、与sizeof的区别:sizeof是单目运算符,它的操作数可以是数据类型、函数(函数调用)、变量、表达式等