时间:2022-07-04 04:52:32
摘 要:数值字符转换是C语言中的一个常见的编程方法,也是等级考试中的一个重要考点,在近几年江苏省的职校对口单招考试中也屡见不鲜。本文主要以C语言编程为例,介绍一些常见数值字符转换的编程方法,从而对循环语句及分支语句的使用能有进一步的了解。
关键词:C语言;数值字符转换
中图分类号:TP312.1
程序算法的研究者越来越年青化,甚至很多小学生的课程中都涉及到程序结构算法等,而C语言是很多工科类学生都学习的一门重要课程,用C语言编程,是令很多学习者既感到有兴趣,又感到有些棘手。数值字符转换是C语言中的一个重点内容,本文主要以C语言编程为例,介绍一些常见数值字符转换的编程方法,从而对循环语句及分支语句的使用能有进一步的了解。
所谓数值字符转换是指:将数据在数值与字符串之间进行转换。编程中常将数值型转换成字符型,将字符型转换成数值型,数值转换成其他数值,字符串转换成其他字符等。下面介绍几种常见的数值字符转换,以提高学习者的兴趣。
1 数值转换成字符串
例:编一函数,功能将一个数值转换成字符串。
分析:在C语言中,数值可以存放在一个普通变量中,而字符串则须用字符数组或指针存放,转换的方法,可以将数值从低位到高位依次取出,转换成字符存放于字符数组中。函数如下:
#include
void dtoc(int x,char a[])
{int n=0,i;
char t;
while(x>0)
{a[n++]=x%10+48;
x/=10;}
a[n]='\0'; /*字符串关闭*/
for(i=0;i
{t=a[i];a[i]=a[n-1-i]; a[n-1-i]=t;}
}
main()
{int x;
char a[50];
printf(“请输入一个整数:”);
scanf(“%d”,&x);
dtoc(x,a);
printf(“%d数值转换为字符串结果为:%s”,x,a);
}
拓展:在C语言中,往往把十进制看成数值,把其他进制看成字符串来处理,这就跟以后题目一至起来了,所以可将题目改成十进制转换成二或八进制,只需将程序中的10改成2或8即可,如果是十六进制,x%16会出现0-9以及10-15,单独将10-15的转换成A-F即可。
2 字符串转换成数值
例:编一函数,功能将一个字符串转换成数值。
分析:同样,字符串用字符数组或指针存放,数值存放在一个普通变量中,而转换的方法,可以将字符串中的每一个字符C取出来,依次放于数值中,用s=s*10+c-‘0’来实现。函数如下:
int ctod(char a[])
{int s=0,i;
for(i=0;a[i];i++)
s=s*10+a[i]-48;
return s;}
拓展:在实际运用中,往往字符串不是纯数字,如果字符串中有非数字字符,可用if语句进行判断,从中选出数字字符参与运算即可。如果是二或八进制的数字,则将10改成2或8。如果是十六制,则有0-9和A-F两种字符,须分别进行处理,0-9处理语句为:s=s*16+a[i]-48;A-F处理语句为: s=s*16+a[i]-55;。
3 数值转换成其它数值
例:编一函数,功能将一个整数倒序,如:x(12345)y(54321)。
分析:依次取出x中的最低位(x%10)存放于y的高位y=y*10+x%10。函数如下:
int dtod(int x)
{int y=0;
while(x>0)
{y=y*10+x%10;
x/=10;}
return y;}
拓展:可将题目改成依次取出整数中的奇数位倒序存放,则将x/10改成x/100。
4 字符中转换成其它字符串
例:编一函数,功能将一字符中的英文字母取出生成一新串。
分析:可将字符从头到位过滤一遍,从中筛选出满足要求的即可,这就是程序中常说的穷举法。函数如下:
#include
void ctoc(char a[],char b[])
{int i,n=0;
for(i=0;a[i];i++)
if(a[i]>='A'&& a[i]='a'&& a[i]
b[n++]=a[i];
b[n]='\0';
}
main()
{char a[50],b[50];
printf("请输入一个字符串:");
scanf("%s",a);
ctoc(a,b);
printf("%s字符串转换成新字符串结果为:%s",a,b);
}
拓展:可对转换后的字符串加一些难度,如加上一些空格,或进行一些大小写的转换等,这就需要适当加上一些条件判断语句。
从以上题目可以看出,数值与字符之间进行转换只需单重循环即可解决,稍复杂一点的题目,还需用分支语句进行配合使用,对数值进行转换是不停地取出最低位,直到数值为零,循环语句可用while(x),对字符串进行转换,则要把字符串从头到尾过滤一遍,循环语句可用for(i=0;a[i];i++)。数值与字符间的转换需要考虑类型,数值转换成字符需要加48或加‘0’,而字符转换成数值需要减48或减‘0’。平时多注意积累,多思考,找出规律,算法是我们要重点考虑的,因题而异,算法不唯一,广大编程爱好者要多总结,从而对循环及分支语句的使用能有进一步的了解。
参考文献:
[1]卢宇清.C语言程序设计教程[M].北京:清华大学出版社,2009.
[2]孔线丽.计算机专业综合理论复习用书(上册)第二版[M].北京:原子能出版社,2007.
作者简介:屠新兵(1975-),男,江苏邗江人,教务副主任,中学一级,研究方向:计算机教学。
作者单位:扬州市邗江中等专业学校,江苏扬州 225009