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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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中首次出现的位置的运算叫做模式匹配。串的两种最基本的存储方式是顺序存储方式和链接存储方式。

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

参考技术A

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

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

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

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

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

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

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

参考技术B 第一次编程,请笑纳
#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本回答被提问者和网友采纳
参考技术C 这里演示的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;
参考技术D 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]);

以上是关于C语言中,如何将一个数组中的数值转换成字符串输出?的主要内容,如果未能解决你的问题,请参考以下文章

c语言中如何将16进制字符串转化成10进制整数?

C语言中 字符串如何转为整型数值

c语言中假设一个数组中已经存放若干个数字字符,编写程序,将每个数字字符转换成对应的数字后存放在另一个

在C语言中怎么把一个数转换成二进制然后输出

C语言 将一个整数转换成一个字符串

R语言数值型转化成字符串