C语言中,如何将一个数组中的数值转换成字符串输出?
#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中首次出现的位置的运算叫做模式匹配。串的两种最基本的存储方式是顺序存储方式和链接存储方式。
参考资料来源:百度百科-字符串
#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
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;
}
{
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]);
}