在嵌入式C中,可能会需要用到两个字符串合并起来的情况,比如声明两个字符串str1 = "abc"; str2 = "def";
,最后想得到一个str = "abcdef";
的字符串。
这时可以使用C语言中的strcat
函数,但这个函数有一个需要注意的地方是,它需要传入的字符串以'\0'
结尾才能正确合并。
如果像str1和str2这样的字符串,虽然也能合并,但是会有概率造成内存越界访问导致芯片Hardfault的风险,所以这里需要改成str1 = "abc\0"; str2 = "def\0";
后再去调用strcat(str1, str2 );
网上关于这个函数的实现原理:
char * __cdecl strcat (char * dst, const char * src)
{
char * cp = dst;
while( *cp )
cp++; /* find end of dst */
while( *cp++ = *src++ ) ; /* Copy src to end of dst */
return( dst ); /* return dst */
}
网友评论