woebird 发表于 2008-4-27 08:49

思考数与字符的转换

将一个数组中的数据转换成字符串该怎么做呢?
如int a[4]={0,1,2,3,4};
转换成
char c[5]="01234";
大家帮着思考一下!
谢谢了!

carlbiao 发表于 2008-4-27 22:09

int a[5]={0,1,2,3,4};
         char b[6];
         string c;
    b[0]=a[0]+48;//数字用字符表示要进行ASCII码的转换!'0'是48,所有加48!
    for(int i=1;i<5;i++)//存入字符数组b[6]中。
       b[i]=a[i]+48;
    for(int i=0;i<5;i++)//转到字符串变量c中。
       c=c+b[i];
我是初学者,只能想到这,如果有简单的,赐教!
    cout<<c;

carlbiao 发表于 2008-4-27 22:10

忘记了
b[0]=a[0]+48;
可省略
呵呵

carlbiao 发表于 2008-4-27 22:11

要加头文件
#include<string>

koolism 发表于 2008-4-28 01:35

#include <stdlib.h>

int main()
{
        int a[] = {0, 1, 2, 3, 4};
        char c[5];

        for(int i = 0; i < 5; i++)
        {
                _itoa(a[i], c+i, 10);
        }
        return 0;
}

koolism 发表于 2008-4-28 01:40

char c[5]="01234";
上面的赋值形式是错误的,"01234"是字符串,以一个空字符结尾,所以长度是6而不是5

linwu_2006 发表于 2008-4-28 10:47

#include <iostream.h>
#include <stdio.h>
int main()
{
        int a[4]={0,1,2,3};
        char s[4];
        sprintf(s, "%d%d%d%d",a[0],a[1],a[2],a[3]); //产生"123"
        printf("%s",s);
        return 0;
}

yxwsbobo 发表于 2008-4-28 15:11

[quote][bo]以下是引用 [un]koolism[/un] 在 2008-4-28 01:40 的发言:[/bo]

char c[5]="01234";
上面的赋值形式是错误的,"01234"是字符串,以一个空字符结尾,所以长度是6而不是5 [/quote]

LS注意这个

abelsky 发表于 2008-4-29 22:49

#include <iostream>
#include <string.h>
using namespace std;
int main()
{
int a[] = {0, 1, 2, 3, 4};
char c[6];
for(int i=0;i<5;i++)
c[i]=a[i]+48;
c[5]='\0';
puts(c);
return 0;
}

[[it] 本帖最后由 abelsky 于 2008-4-30 15:41 编辑 [/it]]

readyforlove 发表于 2008-5-1 08:33

#include <iostream.h>
void main()
{
        int i,a[]={0,1,2,3,4};
        char str[6];
        for(i=0;i<=4;i++)
                str[i]=a[i]+48;
        str[i]='\0';
        cout<<str<<endl;
}

页: [1]

编程论坛