Example /* 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!
char* A = "hello"; char* B = "world"; char* C = (char*)new char(strlen(A) + strlen(B)); strcpy(C,(string(A)+B).c_str()); A = C;
#include <iostream.h> using namespace std; int main() { char A[30] = "test"; char B[4] = "add"; strcat(A,B);//A要有足够空间扩展B中内容 cout << A << endl; //第二种 char *a = "tttt"; char *b = "dddd"; char *dest = new char[strlen(a)+strlen(b)+1]; strcpy(dest,a); strcat(dest,b); cout << dest; delete []dest; //用string就很简单了 楼上已经有介绍了 return 0; }
//用数据结构的知识可以自己写函数的! //调用库函数strcat()很方便的! //我们自己写strcat()这个函数的功能岂不更好! #include <stdio.h> #define MAXSTRLEN 255 typedef unsigned char SString[MAXSTRLEN+1]; void StrAssign(SString &T,char *s); //生成一个值等于s的字符串 void Concat(SString &T,SString S1,SString S2);//S1和S2连接成T void Strshow(SString T); void main() { SString s,s1,s2; char *str1="abcdeff"; char *str2="asfasfasg"; StrAssign(s1,str1); Strshow(s1); StrAssign(s2,str2); Strshow(s2); Concat(s,s1,s2); Strshow(s); } void StrAssign(SString &T,char *s) //生成一个值等于s的字符串 { size_t i,j,len=0; for(i=0;s[i]!='\0';++i) ++len; for(i=0,j=1;i!=len;++i,++j) T[j]=s[i]; T[0]=len;//第一个存储字符串的长度 } void Concat(SString &T,SString S1,SString S2) //S1和S2连接成T { int i,j; if(S1[0]+S2[0]<=MAXSTRLEN) { for(i=1,j=1;i<=S1[0];++i,++j) T[j]=S1[i]; for(i=1,j=S1[0]+1;i<=S2[0];++i,++j) T[j]=S2[i]; T[0]=S1[0]+S2[0]; } else if(S1[0]<MAXSTRLEN) { for(i=1,j=1;i!=S1[0];++i,++j) T[j]=S1[i]; for(i=1,j=S1[0]+1;i<=MAXSTRLEN;++i,++j) T[j]=S2[i]; T[0]=MAXSTRLEN; } else { for(i=1,j=1;i<=MAXSTRLEN;++i,++j) T[j]=S1[i]; T[0]=MAXSTRLEN; } } void Strshow(SString T) //输出字符串 { int i; for(i=1;i<=T[0];++i) printf("%c",T[i]); printf("\n"); }
#include <iostream> using namespace std; int main() { char * A = "Hello!"; char * B = " Kitty"; //两个char *类型的数据相加,必须分配足够大的空间用来存放连接后的数据 char * C = new char[strlen(A)+strlen(B)+1]; C[strlen(A)+strlen(B)] = '\0'; strcpy(C,A); strcat(C,B); A = C; cout << A << endl; //把char型数据放到数组中三种方式 char D[256]; //1.本身char型数据就直接可以当数组来使用 //2.使用循环 for(int i = 0; i < strlen(A); i++) D[i] = A[i]; //3.使用字符串拷贝 strcpy(D, A); cout << D << endl; return 0; }
char str1[15] = "hello"; char str2[15] = " world"; sprintf(strchr(str1,'\0'),"%s",str2); 此处有谁明白吗?很精巧吧!!!