怎样把多个字符串合并成一个字符串?

时间:2022-01-06 22:13:44
Add(char * sText)
{
 char sF[MAX_FILE];

 strcpy(sF,(char *)pData);
 strcat(sF,sText);
 strcpy((char *)pData,sF);
}

这样行么?
其中void * pData是用来存储字符串的指针

12 个解决方案

#1


用strcat(*des,*src)

#2


/* STRCPY.C: This program uses strcpy
 * and strcat to build a phrase.
 */

#include <string.h>
#include <stdio.h>

void main( void )
{
   char string[80];
   strcpy( string, "Hello world from " );
   strcat( string, "strcpy " );
   strcat( string, "and " );
   strcat( string, "strcat!" );
   printf( "String = %s\n", string );
}


Output

String = Hello world from strcpy and strcat!


#3


reride the operator +

#4


如问题那样,应该不可以?但同意楼上的看法!

#5


CString类是可以直接相加减的,例如
CString c1,c2,cs;
c2="i love\0";
c3=" you\0";
c1=c2+c3;
那么C1就是i love you了。
如果是字符串型的,可以直接用等号来转换
如char c[12]="324234"
那么就可以这么做
c1=c;
那么C1就会与C的值一样
相么,如果想把CString转化为char类的串,那么用下面这个函数
sprintf(c,"%s\0",c1);
这样就会把c1的值传给c;

#6


如果MAX_FILE=65536,会不会有问题?

#7


试试才知道!

#8


假如是字符串的话可以直接加的
CString s1="dfd",s2="dfdf"
s1=s1+s2;
如果是其他情况,可以用上面朋友所介绍的情况
如用 
char c1[100];
strcpy(c1,"dfdfd")
strcat(c1,"dfdfd")
等等,方法可以灵活运用的

#9


在相加的过程中多了几个字符,该怎么办?
就是用贴首的程序做的。

#10


多了8个byte

-36
-121
88
-1
126
1
42
55

就是它们

#11


把sText末尾设为'\0'就行了
sText[MAX]=0;

#12



Add(char  *  sText) 

  char  sF[MAX_FILE]; 
  

  strcpy(sF,(char  *)pData); 
  strcat(sF,sText);
  pData = sF; 


 

#1


用strcat(*des,*src)

#2


/* STRCPY.C: This program uses strcpy
 * and strcat to build a phrase.
 */

#include <string.h>
#include <stdio.h>

void main( void )
{
   char string[80];
   strcpy( string, "Hello world from " );
   strcat( string, "strcpy " );
   strcat( string, "and " );
   strcat( string, "strcat!" );
   printf( "String = %s\n", string );
}


Output

String = Hello world from strcpy and strcat!


#3


reride the operator +

#4


如问题那样,应该不可以?但同意楼上的看法!

#5


CString类是可以直接相加减的,例如
CString c1,c2,cs;
c2="i love\0";
c3=" you\0";
c1=c2+c3;
那么C1就是i love you了。
如果是字符串型的,可以直接用等号来转换
如char c[12]="324234"
那么就可以这么做
c1=c;
那么C1就会与C的值一样
相么,如果想把CString转化为char类的串,那么用下面这个函数
sprintf(c,"%s\0",c1);
这样就会把c1的值传给c;

#6


如果MAX_FILE=65536,会不会有问题?

#7


试试才知道!

#8


假如是字符串的话可以直接加的
CString s1="dfd",s2="dfdf"
s1=s1+s2;
如果是其他情况,可以用上面朋友所介绍的情况
如用 
char c1[100];
strcpy(c1,"dfdfd")
strcat(c1,"dfdfd")
等等,方法可以灵活运用的

#9


在相加的过程中多了几个字符,该怎么办?
就是用贴首的程序做的。

#10


多了8个byte

-36
-121
88
-1
126
1
42
55

就是它们

#11


把sText末尾设为'\0'就行了
sText[MAX]=0;

#12



Add(char  *  sText) 

  char  sF[MAX_FILE]; 
  

  strcpy(sF,(char  *)pData); 
  strcat(sF,sText);
  pData = sF;