C语言long型转char*

remotesensor 2011-12-17 04:19:35
这几天一直做字符串处理需要将几个不同部分整合成字符串,或者字符数组;
但因为基础不牢,老不行。我需要拯救啊;
有三个部分: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;
}
但是还不行,不知道怎么办了...............................................
...............................................................................................
...全文
1845 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
柯本 2011-12-17
  • 打赏
  • 举报
回复 1
const char SCN_RATE[] ={ 0x53,0x43,0x4e,0x5f,0x52,0x41,0x54,0x45};
const char ENDPTR[]= {0x0d,0x0a};
如果说,要将他们组成一个字符串(或字符数组),没任何问题
串的话,用你第二个方法就可以的

char *ch1;
strncpy(ch1, SCN_RATE,sizeof(SCN_RATE));
这个肯定不行,你的ch1要申请内存的
ch1=(char *)malloc(100);
或简单地
char ch1[100];
C语言的数据要给它空间的(简单比方,你要给它分配房子,不能让它住在马路上)
另外,数字转字串可用itoa,肯定不能用strcat的
你的问题,用sprintf全可解决,参考下

#include <stdio.h>
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};
sprintf(ch,"%s%s%ld", SCN_RATE,ENDPTR,scan_rate); //一句话解决

printf("%s\n",ch);
return 0;
}
int main()
{
fun(100);
}

remotesensor 2011-12-17
  • 打赏
  • 举报
回复
有解决方法不????
wgggkgd 2011-12-17
  • 打赏
  • 举报
回复
scan_rate是long类型,即4字节,你直接取scan_rate的地址当做char*的指向,但是没有‘\0‘的结尾,难道要让char*一直取到‘\0’为止?
纯属个人理解,有问题请指出

70,017

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧