我想将char*
的数据复制到另一个char*
说明
var1 -> O
var2 -> K
第一步
var1 -> OK
var2 -> K
将var2
复制到var1
结果
var1 -> OK
编写代码
#include <stdio.h>
#include <string.h>
void timpah(char *dest, char *src, int l_dest, int l_src)
{
int i = 0;
while(i < l_dest)
{
dest[l_dest+i] = src[l_src+i];
i++;
}
}
int main()
{
char res[2024];
res[1] = 0x4f;
char a[] = {0x4b};
timpah(res,a,1,1);
printf("%s [%d]\n",res,strlen(res));
return 0;
}
生成
root@xxx:/tmp# gcc -o a a.c
root@xxx:/tmp# ./a
[0]
问题
为什么我的代码不起作用?或者是否已经存在执行这些功能的任何功能,但我还不知道呢?
thx任何关注
答案 0 :(得分:4)
您没有在任何时候设置res[0]
。如果res[0]
包含\0
,那么您的字符串就会结束。你可能正在努力使事情变得更加艰难;您可以随时使用strncpy
和strncat
。
答案 1 :(得分:0)
你可能应该看看strncat(),strncpy()等
答案 2 :(得分:0)
#include <stdio.h>
#include <string.h>
void timpah(char *dest, char *src, int l_dest, int l_src)
{
int i = 0;
while(i < l_dest)
{
dest[l_dest+i] = src[l_src+i];
i++;
}
}
int main()
{
char res[2024];
res[0] = 0x4f;
char a[] = {0x4b};
timpah(res,a,1,0);
res[2] = '\0';
printf("%s [%d]\n",res,strlen(res));
return 0;
}