C语言 51单片机 数组后添加字符问题 20
我在做51单片机编程练习时遇到的问题。这个函数功能主要想实现:外部传进一个unsignedchar的字符串,我希望在这个字符串后面添加4个‘A’然后返回这个数组的指针,我...
我在做51单片机编程练习时遇到的问题。这个函数功能主要想实现:外部传进一个unsigned char 的字符串,我希望在这个字符串后面添加4个‘A’
然后返回这个数组的指针,我不知道我这个哪错了,调试了很久。或者请给我一个你的解决算法,谢谢
unsigned char* chanStr(unsigned char str[])
{
int j;
unsigned char *p,*q;
int num=howLong(str);
p=(unsigned char*)malloc((num+5)*sizeof(unsigned char));
q=p;
*(p+num)='A';
*(p+num+1)='A';
*(p+num+2)='A';
*(p+num+3)='A';
*(p+num+4)='\0';
p=q;
for(j=0;j<num+4;j++)
{
*p=str[j];
p++;
}
return q;
} 展开
然后返回这个数组的指针,我不知道我这个哪错了,调试了很久。或者请给我一个你的解决算法,谢谢
unsigned char* chanStr(unsigned char str[])
{
int j;
unsigned char *p,*q;
int num=howLong(str);
p=(unsigned char*)malloc((num+5)*sizeof(unsigned char));
q=p;
*(p+num)='A';
*(p+num+1)='A';
*(p+num+2)='A';
*(p+num+3)='A';
*(p+num+4)='\0';
p=q;
for(j=0;j<num+4;j++)
{
*p=str[j];
p++;
}
return q;
} 展开
展开全部
将for ( j=0;j<num+4;j++ )改成for ( j=0;j<num;j++ )
追问
改了还是不行
追答
不行的现象是什么?
试试这个:
unsigned char* chanStr(unsigned char *str)
{
int j;
unsigned char *p,*q;
int num=howLong(str);
p=(unsigned char*)malloc((num+5)*sizeof(unsigned char));
if ( p )
{ q=p; for ( j=0;j<num;j++,q++,str++ ) (*q)=(*str);
for ( j=0;j<4;j++,q++ ) (*q)='A';
(*q)=0;
}
return p;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把全部的程序发过来,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询