C语言:将一个整型数组转换为字符串输出。如 int[]={10,11,12},输出char *s = "101112"
2013-08-29
展开全部
#include<stdio.h>
#include<string.h>
#include<stdlib.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()
{
int i[]={10,11,12};
char c[100]="";
IntToStr(i,c,sizeof(i)/sizeof(i[0]));
printf("%s\n",c);
return 0;
}
展开全部
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
main()
{
int a[] = {11,12,13};
int i;
char * s = (char *)malloc(32);
char * str = (char *)malloc(128);
str[0] = 0; //你是动态申请的空间,c语言不会初始化内容的,将第1个字符标记为结束符
for(i=0;i<sizeof(a)/sizeof(int);i++)
{
itoa(a[i],s,10);
printf("%s\n",s);
strcat(str,s);//原先没初始化的话 可能128空间内计算机都以为有内容的 所以一直会向后找,直到找到0再拼接
}
printf("%s\n",str);
free(s);//别忘了 动态申请的要自己释放 养成好习惯
free(str);//别忘了 动态申请的要自己释放 养成好习惯
}
#include<stdlib.h>
#include<string.h>
main()
{
int a[] = {11,12,13};
int i;
char * s = (char *)malloc(32);
char * str = (char *)malloc(128);
str[0] = 0; //你是动态申请的空间,c语言不会初始化内容的,将第1个字符标记为结束符
for(i=0;i<sizeof(a)/sizeof(int);i++)
{
itoa(a[i],s,10);
printf("%s\n",s);
strcat(str,s);//原先没初始化的话 可能128空间内计算机都以为有内容的 所以一直会向后找,直到找到0再拼接
}
printf("%s\n",str);
free(s);//别忘了 动态申请的要自己释放 养成好习惯
free(str);//别忘了 动态申请的要自己释放 养成好习惯
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如下程序,有不明白的地方继续追问:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int a[] = {10,11,12};
int i;
char s[100] = "";
char buf[100];
for (i = 0; i < sizeof(a)/sizeof(int); i++){
sprintf(buf, "%d", a[i]);//把a[i]转成字符串,存在buf里。
strcat(s, buf);//将buf拼接到s尾部。
}
puts(s);
system("pause");
return 0;
}
追答
因为strcat进行字符串拼接的时候自动补充了'/0'。补充地,字符串复制函数strcpy也是一样。str开头的字符串处理函数一般都会自动补'\0'的,它们毕竟都叫“字符串”处理函数嘛,没有'\0'就不叫字符串了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询