C语言中,如何将一个数组中的数值转换成字符串输出?

比如说我有一个数组wd[4]={1,2,3,4},现在想把它转换成字符串输出。最后能写成一个函数的形式。数组的大小是可变的。

#include<stdio.h>

void IntToStr(int *i, char *c, int len)

{//i为整形数组,c为要存放字符串的数组,len为整形数组元素个数

int k;

char tmp[10];

for(k=0;k<len;k++)

{

itoa(i[k],tmp,10);

strcat(c,tmp);

int main()

或:

#include <string.h>

int main() // 这里为了方便直接用main函数

{

char array[] = { 'h', 'e', 'l', 'l', 'o' };

/* 需要注意的是,这里没有终结符,故需要知道数组的 */

/* 大小(数组的大小是编译时常量)*/

char *dest_str; // 目标字符串

dest_str = (char *)malloc(sizeof(char) * (sizeof(array) + 1));

/* 为字符串分配堆空间 */

strncpy(dest_str, array, sizeof(array));

// 用C标准库函数strncpy拷贝字符

return 0;

}

扩展资料:

字符串在存储上类似字符数组,它每一位单个元素都是能提取的,字符串的零位是它的长度,如s[0]=10,这提供给我们很多方便,例如高精度运算时每一位都能转化为数字存入数组。

通常以串的整体作为操作对象,如:在串中查找某个子串、求取一个子串、在串的某个位置上插入一个子串以及删除一个子串等。两个字符串相等的充要条件是:长度相等,并且各个对应位置上的字符都相等。设p、q是两个串,求q在p中首次出现的位置的运算叫做模式匹配。串的两种最基本的存储方式是顺序存储方式和链接存储方式。

参考资料来源:百度百科-字符串

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-12-26

1、首先写上注释内容,如下图所示。

2、然后写上数据类型(char)+字符串名称,如下图所示。

3、接下来需要在=后面写上字符串的内容,如下图所示。

4、接下来需要将字符串的内容打印出来,如下图所示。

5、接下来需要点击顶部的编译,如下图所示。

6、接下来需要点击运行。

7、这时候就可以看到刚才被定义的字符串被输出来了。

本回答被网友采纳
第2个回答  推荐于2018-01-17
第一次编程,请笑纳
#include<stdio.h>

void ToString(int array[], int array_size);

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

ToString(a, sizeof(a)/sizeof(a[0]));
}

void ToString(int array[], int array_size)
{
char *p;
int i;

p = (char*)malloc(array_size + 1);

for(i = 0; i < array_size; i++)
{
*(p+i) = '0' + array[i];
}

*(p+i) = '\0';

printf("int array is string %s\n", p);
}

运行结果:
Administrator@X11 ~
$ gcc main.c

Administrator@X11 ~
$ ./a
int array is string 54321本回答被提问者和网友采纳
第3个回答  2019-10-01
这里演示的char类型数组,举一反三,自己查资料看in数组怎么转
int main()
{
unsigned char arr[]={0x12,0x34,0x56,0xaa,0xff,0xcd};
char str[256]="";
//sprintf(str,"%X%X%X",arr[0],arr[1],arr[2]);
int i=0;
for(i=0;i<sizeof(arr);i++){
sprintf(str+i*3,"%X ",arr[i]);
}
printf("%s\n",str);

return 0;
}
第4个回答  推荐于2017-10-14
unsigned char fun(char c)/*把用字符表示的十六进制数转换为二进制表示*/
{

if('A' <=c && c <='Z')

return c - 'A' + 10;

if('a' <=c && c <='z')

return c - 'a' + 10;

return c - '0' ;
}
void convert(const char *str, unsigned char *arr)
{

for(unsigned i = 0; str[i] != '\0'; ++i )

if(i%2 == 0){

arr[i/2] = fun(str[i]);

arr[i/2] <<= 4;

}

else

arr[i/2] |= fun(str[i]);
}
相似回答