************

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

导读:  例:编一函数,功能将一个数值转换成字符串。  分析:在C语言中,数值可以存放在一个普通变量中,而字符串则须用字符数组或指针存放,转换的策略,可以将数值从低位到高位依次取出,转换成字符存放于字符数组中。函数如下:  #include   void dtoc(int x,char a=x%10+48;  x/=10;}  a='\0'; /*字符串关闭*/  for(i=0
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-试议C语言中常见数值字符转换的编程方法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 数C语言中常见数值字符转换的编程方法由专注毕业论文与职称论文的http://www.wowa.cn提供,转载请保留****.值转换成其它数值
  例:编一函数,功能将一个整数倒序,如: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]<='Z'||a[i]>='a'&& a[i]<='z')
  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
上一篇论文:简析让语言在英语课堂上神采飞扬 下一篇论文:浅析一种二叉树非递归遍历算法的C语言实现
相关论文
业务范围
免费本科范文
免费硕士范文
免费职称范文
论文****
职称论文****表