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

怎么将两个字符指针的内容相加?

2012-01-29 
如何将两个字符指针的内容相加???如下:char*achar*b字符指针a和b中包含文字、图片等信息的.如何将这两个

如何将两个字符指针的内容相加???
如下:
      char*   a;
      char*   b;
      字符指针a和b中包含文字、图片等信息的.
      如何将这两个字符指针的内容相加,获得后的大小又是多少?


[解决办法]
大小自己算咯``不过是指针如果用sizeof的话,就会是4的
[解决办法]
字符信息:strlen
图片信息:读入图片时已知
[解决办法]
根据你的数据先算出a,b内存的大小,然后开辟新的内存,把两个数据copy在一起
[解决办法]
char* a = "1234asdf ";
char* b = "5678asdf ";
char * buf;
buf = (char*) malloc(Max_len);
strcpy(buf,a);
strcat(buf,b);
AfxMessageBox(buf);

这样做不行吗??


[解决办法]
感觉没什么问题。
[解决办法]
如果是做图片信息存储,用文件存储我觉得比较方便啊::
FILE* datamemory;
char CurDir[256];
sprintf(CurDir, "%sdatabuff.dat ",“路径”);
if((datamemory=fopen(CurDir, "w+b "))==NULL)

AfxMessageBox( "Open file failed! ");
else
{
fseek(datamemory,0,SEEK_END);
if(fwrite(“要存取的信息”,sizeof(char),datalen,datamemory) <datalen)
AfxMessageBox( "data save losed! ");
fclose(datamemory);

}
char fmemory[MAX_FRAME_LEN];
FILE* loadfile;
if((loadfile=fopen(CurDir, "r+b "))==NULL)
AfxMessageBox( "file not existed! ");
else
{
num=fread(framebuf,sizeof(char),“读取的长度”,loadfile);
}


我也是存取图片信息,就用这个方法!!!觉得比较方便!!
[解决办法]
楼上的正解呀。。
[解决办法]
字符指针中包含图片等信息时用strlen获得的长度不对呀
---------
那你的数据就不是字符信息。字符信息可以用strlen。图片信息大小从其获取来源已知。
[解决办法]
文件存取感觉也没有影响什么速度!!!除非大量读取可能会有吧。
没做过测试!!
[解决办法]
字符信息是用strlen()
[解决办法]
char 能存取数字、字符,相应转换一下格式不就对了吗?
[解决办法]
char* a;
char* b;
字符指针a和b中包含文字、图片等信息的.
如何将这两个字符指针的内容相加,获得后的大小又是多少?

字符串 在标准C字串中不可有 \0 所以可以用strlen
对于图片数据难保证没有 \0 所以不可用 strlen

图片数据长度必须是你事先得知 假设为 sizePic
文本数据可以用 strlen 为 sizeLen

然后增大空间 allocmen() --- 这个要查证下哪个分配函数不会初始化内存块且是在原内存数据上增扩的

然后用memcpy 将接上的数据复制过去 修改 sizeXXXX 就成了
[解决办法]
memcpy(buff+lena-1,b,lenb);
------------
memcpy(buff+lena,b,lenb); // 不用减1

char* buff=new char[lena+lenb+1];
---------
根据长度取值,+1也没有必要。
[解决办法]
用memcpy来搞
[解决办法]
检查memcpy之前b的数据是否正确!!!
[解决办法]
如果你指针指向的是图片等而不是字符串的话,用strlen是无法得到长度的,如果是图片的话,你一定在这之前就已经得到了,不可能就得到一块区域而不知道长度的,你好好想想,一定在之前已经得到了.
------解决方案--------------------


是不是编译器地址对齐问题,设置一下存取和对齐的时候都用#pragma Pack(1),完了之后
#prgma Pop(1)
[解决办法]
上面写的可能不太对,具体的你可以查一下,我手头没有资料
[解决办法]
char* a; 大小lena;
char* b; 大小lenb;
char* buff=new char[lena+lenb+1]; // 这里对 要 +1 因为有个字符串

memset(buff,0,lena+lenb+1); // 置0 好!
memcpy(buff,a,lena); // 图片放进去了? 好
memcpy(buff+lena/*-1*/,b,lenb); // 不用减 1了 未尾恰好多个 0 保证C_str有结尾

[解决办法]
上面代码没有问题啊!lz说说准备怎么使用?

是否拷贝到一起后当字符串使用?不能再当字符串使用了啊,后面是图片数据,按字符查看肯定乱码。

热点排行