C语言程序设计的一道题,一个把阿拉伯数字转换成中文大写数字的程序。我自己编写如下:
char num[10] = {'零','一','二','三','四','五','六','七','八','九'};
“只有客户发展了,才有我们的生存与发展!”这是成都创新互联的服务宗旨!把网站当作互联网产品,产品思维更注重全局思维、需求分析和迭代思维,在网站建设中就是为了建设一个不仅审美在线,而且实用性极高的网站。创新互联对做网站、成都做网站、网站制作、网站开发、网页设计、网站优化、网络推广、探索永无止境。
char num2[10] = {'零','壹','贰','叁','肆','伍','陆','柒','捌','玖'};
char wei[4] = {'\0','十','百','千'};
char danwei[3] = {'万','亿'};
char wei2[4] = {'拾','佰','仟'};
这几个定义不对,因为汉字占两个字节,所要num等的长度要乘以2
wei2和danwei两个,当字符串遇到\0就会结束,所要这样定义是不对的
你要这么定义,也就是定义二维数组
num[10][] = {"零",一”,“二”,“三”,“四”,“五”,“六”,“七”,“八”,“九”};
其他的汉字定义也一样,我就不写了,下面我利用的时候,就默认改过了
思路,首先判断输入的x的长度,接着转换为0~9
lx=strlen(x);
for(i=0;ilx;i++)
x[i]=x[i]-'0';
接着就是输出了,这个要交替输出
也就是输出一个x的字符0~9对应的num中的数,接着输出对应的万千亿等标识
代码是
for(i=0;ilx;i++)
{
d=lx-i; //这里要计算这个位在这个字符到最后的位置,你懂
//这个可能控制不好,也就是一位的差距,你自己调试一下就可以
puts(num2[x[i]]); //输出x中的数对应的汉字
//接下来输出相应的百千万亿等汉字
if(d==2||d==6||d==10) //在十、十万、十亿位置输出十
puts(wei[0]);
if(d==3||d==7||d==11) //在百,百万、百亿位置输出百
puts(wei[1]);
if(d==4||d==8||d==12) //在千,千万,千亿位置输出千
puts(wei[2]);
if(d==5) //在万位输出万
puts(danwei[0]);
if(d==9) //在第九位输出亿
puts(danwei[1])
}
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输出。
c语言数字和字符的相互转换
#include "stdio.h"
#include "math.h"
main()
{
char change(int x,int n);
int x,i,j;
char s[8],y;
printf("请输入整数:");
scanf("%d",x);
for(i=0;i20;i++)
{
y=change(x,i);
if(y=='\0')
{
s[i]='\0';
break;
}
s[i]=y;
}
for(i=7;i=0;i--)//由于字符存储到字符数组时顺序与原来相反,故在此将字符顺序倒输
if(s[i]=='\0')
for(j=i-1;j=0;j--)
printf("%c",s[j]);
printf("\n");
}
char change(int x,int n)
{
int i;
char g;
for(i=0;i=n;i++)
{
switch(x%10)
{
case 0 :g='0';break;
case 1 :g='1';break;
case 2 :g='2';break;
case 3 :g='3';break;
case 4 :g='4';break;
case 5 :g='5';break;
case 6 :g='6';break;
case 7 :g='7';break;
case 8 :g='8';break;
case 9 :g='9';break;
}
if(x==0)
{
g='\0';
break;
}
x=x/10;
}
return(g);
}
在C/C++语言中没有专门的字符串变量
通常用字符数组来存放字符串。字符串是以“\0”作为结束符。C/C++提供了丰富的字符串处理函数,下面列出了几个最常用的函数。
字符串是面试的重点考查部分的相关知识,通过考查字符串的相关知识可以考察程序员的编程规范以及编程习惯。并且其中包括了许多知识点,例如内存越界、指针与数组操作等。许多公司在面试时会要求应聘者写一段复制字符串或字符串子串操作的程序。本章列举了一些与字符串相关的面试题,有些题目要求较高的编程技巧。
以上内容参考:百度百科-字符串
C语言 小写数字转换大写汉字
应该是小写字母转大写字母。
#include stdio.h
char* toUpper(char *src)
{
int i = -1;
while (src[++i])
if (src[i] = 'a' src[i] = 'z') // 如果是小写字符,减去32就是大小写了
src[i] -= 32;
return src;
}
int main()
{
char p[] = "acsduavh4516;';gbasff";
printf("relust = %s\n", toUpper(p));
return 0;
}
网站标题:c语言数值转汉字函数,c语言将数字转化为汉字
转载源于:http://lswzjz.com/article/hsgohe.html