展开全部
方法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;
}
展开全部
不准用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()。
#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()。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是以整型的位数为限的,输入位数太长了不行。
//#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);
}
//#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);
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int b=13444;
sprintf(a,"%d" ,b)将b的值转换为“13444”字符串付给a。
sprintf(a,"%d" ,b)将b的值转换为“13444”字符串付给a。
追问
不用 sprintf itoa
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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(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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询