C语言中如何把int型数组转化为字符串? 20

如何把int型数组转化为字符串?请给出一个函数方法... 如何把int型数组转化为字符串?请给出一个函数方法 展开
 我来答
a904003695
2013-11-15 · TA获得超过1547个赞
知道小有建树答主
回答量:426
采纳率:100%
帮助的人:201万
展开全部

方法1:

int a[10]={1,2,3,4,5,6,7,8,9,0};
 char buf[10];
 string s;
 for(int i=0;i<10;i++)
 {
  itoa(a[i],buf,10);
  s+=buf;
 }

方法2:

int a[10]={65,66,67,68,69,70,71,72,73,74};
 char buf;
 string s;
 for(int i=0;i<10;i++)
 {
  buf=a[i];
  s+=buf;
 }

方法3:

int a[10]={0,1,2,3,4,5,6,7,8,9};
 char buf;
 string s;
 for(int i=0;i<10;i++)
 {
  buf=(char)a[i]+48;
  s+=buf;
 }

金色潜鸟
2013-11-15 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5709万
展开全部
不准用sprintf 之类函数,要自己写,那么 这样自己写i2s如下:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

void i2s(int x, char *s){
int v,xx,i,j,n=0;
char c;
xx = abs(x);
while(1){
v=xx%10;
s[n]=v+'0'; n++;
xx=(xx-v)/10;
if (xx==0) break;
}
if (x<0) {s[n]='-'; n++;}
for (i=0;i<n/2;i++){
c=s[i]; s[i]=s[n-i-1];s[n-i-1]=c;
}
s[n]='\0';
}

main()
{
int a[4]={12,34,-56,789};
char s[4][15];
int i;
for (i=0;i<4;i++){
i2s(a[i],s[i]);
printf("%s ",s[i]);
}
return 0;
}

输出:12 34 -56 789
如用
int i2s(int x, char *s){
//全部照旧
return n;
}
可以返回字符串长度。
你若想把所有输出放入一个长长的char 数组,有了每个字符串长度,应当很容易自己做了--即使不用strcat()。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
White_MouseYBZ
推荐于2017-12-16 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6648万
展开全部
是以整型的位数为限的,输入位数太长了不行。
//#include "stdafx.h"//vc++6.0加上这一行.
#include "stdio.h"//
void main(void){
double rn=9876.5678;
int i=1000000000,k,pt=1,n;
char a[12]="";
printf("Enter a floating point number...\nrn=");
//scanf("%lf",&rn); //手工输入时把这一行开放.
while((rn/=10)>1.0) pt++;
n=(int)(rn*i);
while(!(n%10)){
n/=10;
i/=10;
}
for(k=0,i/=10;i>=1;i/=10){
a[k++]=n/i+'0';
n%=i;
if(k==pt) a[k++]='.';
}
printf("%s\n",a);
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sdxuelj
2013-11-15 · TA获得超过163个赞
知道小有建树答主
回答量:380
采纳率:0%
帮助的人:157万
展开全部
int b=13444;
sprintf(a,"%d" ,b)将b的值转换为“13444”字符串付给a。
追问
不用 sprintf itoa
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友4a2d5ee
2013-11-15
知道答主
回答量:5
采纳率:0%
帮助的人:3.5万
展开全部
char s[10];
sprintf(s,"%d",10);
----------------------------------or--------------------------
#include <stdlib.h>
#include <stdio.h>
int main()
{
int number = 123456;
char string[25];
itoa(number, string, 10);
printf("integer = %d string = %s\n", number, string);
return 0;
}
更多追问追答
追问
不用 sprintf itoa
追答
那就考虑内存里面直接操作ASCII码,每位直接读了加0x30
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式