C语言中常见数值字符转换的编程方法

时间:2022-07-04 04:52:32

C语言中常见数值字符转换的编程方法

摘 要:数值字符转换是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

上一篇:浅谈幕墙防水设计 下一篇:论武陵山贫困地区如何做好招商引资