首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

字符串连接解决方案

2012-02-20 
字符串连接现在有两个字符串char buffer[100]mod\000ING_L3_NEXT_HOP\000char buffer1[12]2;如何连

字符串连接
现在有两个字符串
char buffer[100]="mod\000ING_L3_NEXT_HOP\000";
char buffer1[12]="2";

如何连接这两个字符串使成为下面的形式:

"mod\000ING_L3_NEXT_HOP\0002";


谢谢

[解决办法]
这个首先要知道buffer的实际数据长度,然后用memcpy(buff+实际长度,buff1,要写入的长度)
[解决办法]
char buffer[100]="mod\\000ING_L3_NEXT_HOP\\000";
char buffer1[12]="2";
strcat(buffer, buffer1);

表示路径的话,请用\\
[解决办法]
memcpy
目的地址的偏移和源地址的链接长度要自己算
[解决办法]
//C源代码
//test.c
#include<string.h>
#include<stdio.h>
void main(void)
{
int i;

char buffer[100]="mod\0f00ING_L3_NEXT_HOP\0f00";
char buffer1[12]="2";
char new_buffer[99+11+1];

memcpy(new_buffer,buffer,99);
memcpy(new_buffer+99,buffer1,11);
new_buffer[110]='\0';


printf("拼接前buffer[100]:\n");
for(i=0;i<100;i++)
{
if(buffer[i]>0x1f && buffer[i]<0x7f) printf(" '%c' ",buffer[i]);//可打印字符
else printf("%02xH ",buffer[i]);//不可打印字符
}
printf("\n拼接后new_buffer[100]:\n");
for(i=0;i<111;i++)
{
if(new_buffer[i]>0x1f && new_buffer[i]<0x7f) printf(" '%c' ",new_buffer[i]);
else printf("%02xH ",new_buffer[i]);
}
putchar('\n');
}

热点排行