C语言将数字转换为字符型输出(用函数)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言将数字转换为字符型输出(用函数)相关的知识,希望对你有一定的参考价值。
对聪明点的人都应该挺简单,我就是想不通调用函数的时候是整型,返回函数的时候需要返回字符数组,需要怎么做?谢谢……尽量不要用指针,我们老师没讲过,我自学指针不咋滴啊
可以使用sprintf函数实现功能。sprintf的声明为
int sprintf(char *dst, const char * format_str...);
其功能为:将...部分的参数,按照format_str的要求,输入到dst中。
需要根据数字的类型,使用format_str。
如整型(int)的使用方式为
sprintf(buf, "%d", a);
如果a为123,那么buf中的字符串为"123"。
常见的数字类型还有:
1 short, 用%h输出;
2 long, 用%ld输出;
3 float, 用%f输出;
4 double, 用%lf输出。 参考技术A 给,已经编译运行确认:
#include<conio.h>
#include<stdio.h>
char s[20]=NULL;//用以存放字符型输出结果的字符数组
void inttostring(int n)//转换用的函数
int i=0,j;
char temp;
while(n)//先将整数逆序保存进数组
s[i]=n%10+'0';//将十进制数字转换成字符保存
n=n/10;
i++;
for(j=i-1;j>=i/2;j--)//再将逆序的字符结果再逆转一次,得到正确结果
temp=s[j];
s[j]=s[i-j-1];
s[i-j-1]=temp;
int main()
int i;
printf("please input a number: ");
scanf("%d",&i);
inttostring(i);
printf("String is: %s",s);
getch();
return 0;
本回答被提问者采纳 参考技术B 最简单的方法就是用sprintf函数,直接把整型变量输出到一个字符串中(当然就可以用字符数组),复杂一点就是LS说的那样把一个整数每一位取出,放到字符数组中,代码我就不写了,参考LS的。
简单示例sprintf函数:
#include <stdio.h>
#include <stdlib.h>
int main(void)
char str[10];
int i = 12345;
sprintf(str,"%d",i);
printf("str = %s\n",str);
return 0;
参考技术C 你是自学的?那就自己动手试一下吧,我也是自学吧。不过是因为自己进度比老师快罢了。
我说个思路吧,就不给你学程序段了。最简单的方法就是“打散输出”,比如135这个整数,你可以把它的百位、十位、各位分别取出,用字符数组存放,再用for循环输出。
你先动手自己试一下,我的经验就是自己动手永远比老师告诉你现成的程序强! 参考技术D 不用指针怎么行呢?
下面这个程序供参考
#include "stdio.h"
#include "stdlib.h"
void main()
int b;
char str[10];
printf("Please input an int:\n");
scanf("%d",&b);
itoa(b,str,10);///这个函数为stdlib.h库中的库函数
printf("%s",str);
C语言问题 将输入数字的转换成中文
求大神~~~谢谢~
输入一个0~9999之间的数字,转换成中文输出
样例输入
36
211
2126
10
20
101
样例输出
三十六
二百一十一
二千一百二十六
十
二十
一百零一
注意:输入10,输出应该为十,而不是一十。
下面是后台代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
int i=0,count=0; //计数器
char nums[10][4]="壹","贰","叁","肆","伍","陆","柒","捌","玖","拾";
int money;
int moneys[5]; //默认可以存储5个数字
printf("请输入金额:");
scanf("%d",&money);
while(money != 0)
moneys[i] = money % 10; //取个位数
money /= 10; //去掉个位数
i++;
count++;
printf("你输入一共有%d个数字!\\n",count);
for(i=count-1;i>=0;i--)
printf("%d----%s\\n",moneys[i],nums[moneys[i]-1]);
return 0;
扩展资料
C语言特点
C语言普适性最强的一种计算机程序编辑语言,它不仅可以发挥出高级编程语言的功用,还具有汇编语言的优点,因此相对于其它编程语言,它具有自己独特的特点。具体体现在以下三个方面:
其一,广泛性。C 语言的运算范围的大小直接决定了其优劣性。C 语言中包含了34种运算符,因此运算范围要超出许多其它语言,此外其运算结果的表达形式也十分丰富。此外,C 语言包含了字符型、指针型等多种数据结构形式,因此,更为庞大的数据结构运算它也可以应付。
其二,简洁性。9 类控制语句和32个KEYWORDS是C语言所具有的基础特性,使得其在计算机应用程序编写中具有广泛的适用性,不仅可以适用广大编程人员的操作,提高其工作效率,同 时还能够支持高级编程,避免了语言切换的繁琐。
其三,结构完善。C语言是一种结构化语言,它可以通过组建模块单位的形式实现模块化的应用程序,在系统描述方面具有显著优势,同时这一特性也使得它能够适应多种不同的编程要求,且执行效率高。
参考资料来源:百度百科-C语言
参考技术A#include<stdio.h>
intmain()
intweekday;
scanf("%d",&weekday);
switch(weekday)
case1:printf("Monday\\n");break;
case2:printf("Tuesday\\n");break;
case3:printf("Wednesday\\n");break;
case4:printf("Thursday\\n");break;
case5:printf("Friday\\n");break;
case6:printf("Saturday\\n");break;
case7:printf("Sunday\\n");
return0;
扩展资料
C语言数字钱转大写中文
#include<stdio.h>
#include<string.h>
char *MoneyToChina(double mon)
char *f1[] =
"零",
"壹",
"贰",
"叁",
"肆",
"伍",
"陆",
"柒",
"捌",
"玖"
;
char *f2[] =
"仟",
"佰",
"拾",
"亿",
"仟",
"佰",
"拾",
"万",
"仟",
"佰",
"拾",
"元",
"角",
"分"
;
char strre[99];
char strbak[99];
char *value;
int len, i, k;
/*此处在原有数字上乘上100主要是为了分析角与分*/
sprintf(strbak, "%.0lf", 100 * mon);
strbak[14] = ''; /*数据的最大值为14位不能大于仟亿*/
len = strlen(strbak);
strre[0] = '';
k = 14 - len;
for (i = 0; i < len; i++)
/*strbak[i] - '0'主要是为了获取ASCII码,这要才能获取数组中的值*/
strcat(strre, f1[strbak[i] - '0']);
strcat(strre, f2[k]);
k++;
strcat(strre, "整");
value = strre;
return value;
int main()
double mon;
printf("请输入要转换的金额值:");
scanf("%lf", &mon);
printf("您输入的金额转换后的金额为:< %s > ", MoneyToChina(mon));
参考资料来源:百度百科—c语言
参考技术B #include <stdio.h>int main()
char dxsz[][4] = "零","一","二","三","四","五","六","七","捌","玖";
char dw[][4] = "","拾","佰","仟";
char wei[4]; //输入数字的每一位数字
int num,ct; //输入的数字及位数
int flag; //输出“零”标志,不连接输出“零”
while(1)
scanf("%d",&num);//输入数字
if( num < 0) //如果是负数,退出程序
break;
if( num > 9999) //如果超出范围,不处理
continue;
ct = 0; //计算每一位数,统计总位数
while(num > 0)
wei[ct] = num % 10;
num /= 10;
ct++;
flag = 0; ////输出“零”标志复位
for( int i= ct -1; i>=0; i--) //从高位到低位输入
if( wei[i] == 1 && i == 1 && ct ==2 ) //如果当前输出十位,且十位为1
printf("%s",dw[i]); //只输出单位“拾”
else if( wei[i] > 0) //否则,如果当前位数值大于0,输出数字和单位
printf("%s%s",dxsz[wei[i]],dw[i]),flag = 0; //并且复位输出“零”标志
else if( i > 0 && flag ==0) // 如果不是个位,并且上一输出不是0
printf("%s",dxsz[0]),flag=1; //输出“零”,并设置输出“零”标志
printf("\\n");
return 0;
本回答被提问者采纳 参考技术C 1,先做出来个对应表 0-零 1-一。。。。。10-十
2,判断输入数字多少位
3,遍历每一个数字对应中文
当数是10的时候 单独判断一次就OK 参考技术D 四位数字用/和%变成四个单独的数字,然后在用case语句
以上是关于C语言将数字转换为字符型输出(用函数)的主要内容,如果未能解决你的问题,请参考以下文章