C语言long型转char*
这几天一直做字符串处理需要将几个不同部分整合成字符串,或者字符数组;
但因为基础不牢,老不行。我需要拯救啊;
有三个部分:const char SCN_RATE,一个long型数据,还有一个字符数组ENDPTR[];
const char SCN_RATE[] ={ 0x53,0x43,0x4e,0x5f,0x52,0x41,0x54,0x45};
const char ENDPTR[]= {0x0d,0x0a};
这是一个设置字符数组,我需要将 SCN_RATE后面跟上一个数字,然后跟上ENDPTR[];
int set_scan_rate(long scan_rate)
{
char *ch1;
strncpy(ch1, SCN_RATE,sizeof(SCN_RATE));
char ch3[2] = {0x0d,0x0a};
strcat(ch1,(char *)&scan_rate);
strcat(ch1,ch3);
return 0;
}
由于strlen,strcat等操作都会默认字符串尾部‘\0’,所以这样不行,我又试了另一种方法
const char SCN_RATE[] ={ 0x53,0x43,0x4e,0x5f,0x52,0x41,0x54,0x45 ,0x00};
const char ENDPTR[]= {0x0d,0x0a,0x00};
int fun(long scan_rate)
{
char ch[30];
char ch3[3]={0x0d,0x0a,0x00};
char *ptr;
int i=0;
for(i=0;i<sizeof(SCN_RATE);i++)
{
ch[i]=SCN_RATE[i];
}
sprintf(ptr,"%d",scan_rate);
strcat(ch,ptr);//strcat(ch,(char *)&scan_rate) //这是另一种方法,也不可以
strcat(ch,ch3);
return 0;
}
但是还不行,不知道怎么办了...............................................
...............................................................................................