码迷,mamicode.com
首页 > 其他好文 > 详细

将整数n转换成字符串的方法

时间:2015-04-23 17:43:12      阅读:115      评论:0      收藏:0      [点我收藏+]

标签:convert   include   字符串   整数转字符串   

最近做一个题,用递归方法将整数n转换成为字符串,做了半天做好了才发现有一个库函数直接就可以实现这个功能,真是日了狗了。。。。

小二,上代码。。。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
//  这个turnover函数是为了将字符串调转过来,因为convert函数中将n转换成字符串后字符串是倒着的
//  就是利用了一个中间变量将字符串数组s首尾依次交换
char *turnover(char *s)
{
 int i,j;    // 临时变量
 char c;     // 临时变量
 j=strlen(s)-1;   // 获取字符串有字符的长度因为字符串后又‘\0‘,所以减1
 for(i=0;i<=j/2;i++)  // 循环一次交换
 {
  c=s[j];
  s[j--]=s[i];
  s[i]=c;
 }
 return s;
}
// 将整数n转换成字符串
char *convert(int n,char *s)
{
 char c[]={‘0‘,‘\0‘}; // 临时变量,用于存储从n上一次剥落的字符
 c[0]=n%10+‘0‘;   // 将n的个位转化成字符,存储在c[0]中
 strcat(s,c);   // 连接s与c
 n/=10;     // n被剥落一位就减去一位
 if(n!=0)    // 递归开始。。。
  convert(n,s);
 else
  return turnover(s);
}
int main()
{
 int n;
 char s[100],*str;
 scanf("%d",&n);
 str=convert(n,s);
 printf("%s\n",str);
}

其实将n转换成字符串还有一个更方便的库函数int sprintf(char *s,"......",各种参数);

这个函数第一个参数为字符串首地址,第二个参数为格式字符串,第三个为格式控制。返回值为字符字符串的长度。用法如下:

#include<stdio.h>
#include<string.h>
int main()
{
 char buffer[80];
 int n,i;
 scanf("%d",&n);
 i=sprintf(buffer,"%d",n);
 printf("%s\n",buffer);
 printf("%d",i);
}

输出结果为:

技术分享

 

将整数n转换成字符串的方法

标签:convert   include   字符串   整数转字符串   

原文地址:http://javavwv.blog.51cto.com/8832079/1637624

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!