“abc"."def"就等于"abcdef",使用一次就废弃的。
有这样的函数吗?
7 个解决方案
#1
建议用C++中自带的string类型,简单又方便。
#2
用string类库,直接用 + 号就连接起来生成新的string了
#3
最简单、最保险的方法就是用标准库的string,strcat这些函数都必须自己事先分配内存的,即你说的破坏第一个字符串:
char s1[] = "abc";
char s2[] = "def";
std::string sc = s1;
sc += s2; // "abcdef"
char s1[] = "abc";
char s2[] = "def";
std::string sc = s1;
sc += s2; // "abcdef"
#4
自己写一个,连接多个字符串,返回连接后的长度。
用法:
int ConnectString(char *pszDest,...)
{
char *pTemp;
const char *pszSrc;
va_list pArgList;
pTemp=pszDest;
va_start(pArgList,pszDest);
while ((pszSrc=va_arg(pArgList,const char *))!=NULL)
{
while (*pszSrc!=0)
{
*(pTemp++)=*(pszSrc++);
}
}
va_end(pArgList);
*pTemp=0;
return pTemp-pszDest;
}
用法:
char p[100],p1[]="123",p2[]="456",p3[]="789";
iLength=ConnectString(p,p1,p2,p3,NULL);
#5
1)字符串字面值常量 ,不需要任何符号,就可以连接
2)C非常量字符串,自然要用strcat了,不然,自己写函数实现。
3)C++ string 字符串类,+,+=就是连接符,这个类重载了operator +(),operator +=()。
"abc""efg" == "abc" "efg" ==
"abc"
"efg"
=="abcefg"
2)C非常量字符串,自然要用strcat了,不然,自己写函数实现。
3)C++ string 字符串类,+,+=就是连接符,这个类重载了operator +(),operator +=()。
string a("abc");
a+="efg";
cout<<a<<endl;
cout<< a+"hij"<<endl;
cout<<string ("abc")+"efg"<<endl;
#6
strcat.
#7
char s1[]="abc";
char s2[]="def";
char s12[100];
sprintf(s12,"%s%s",s1,s2);
作为一个C程序员,对
scanf,sscanf,fscanf
printf,sprintf,fprintf
这类函数的用法,还是要做到“拳不离手,曲不离口”的。
#1
建议用C++中自带的string类型,简单又方便。
#2
用string类库,直接用 + 号就连接起来生成新的string了
#3
最简单、最保险的方法就是用标准库的string,strcat这些函数都必须自己事先分配内存的,即你说的破坏第一个字符串:
char s1[] = "abc";
char s2[] = "def";
std::string sc = s1;
sc += s2; // "abcdef"
char s1[] = "abc";
char s2[] = "def";
std::string sc = s1;
sc += s2; // "abcdef"
#4
自己写一个,连接多个字符串,返回连接后的长度。
用法:
int ConnectString(char *pszDest,...)
{
char *pTemp;
const char *pszSrc;
va_list pArgList;
pTemp=pszDest;
va_start(pArgList,pszDest);
while ((pszSrc=va_arg(pArgList,const char *))!=NULL)
{
while (*pszSrc!=0)
{
*(pTemp++)=*(pszSrc++);
}
}
va_end(pArgList);
*pTemp=0;
return pTemp-pszDest;
}
用法:
char p[100],p1[]="123",p2[]="456",p3[]="789";
iLength=ConnectString(p,p1,p2,p3,NULL);
#5
1)字符串字面值常量 ,不需要任何符号,就可以连接
2)C非常量字符串,自然要用strcat了,不然,自己写函数实现。
3)C++ string 字符串类,+,+=就是连接符,这个类重载了operator +(),operator +=()。
"abc""efg" == "abc" "efg" ==
"abc"
"efg"
=="abcefg"
2)C非常量字符串,自然要用strcat了,不然,自己写函数实现。
3)C++ string 字符串类,+,+=就是连接符,这个类重载了operator +(),operator +=()。
string a("abc");
a+="efg";
cout<<a<<endl;
cout<< a+"hij"<<endl;
cout<<string ("abc")+"efg"<<endl;
#6
strcat.
#7
char s1[]="abc";
char s2[]="def";
char s12[100];
sprintf(s12,"%s%s",s1,s2);
作为一个C程序员,对
scanf,sscanf,fscanf
printf,sprintf,fprintf
这类函数的用法,还是要做到“拳不离手,曲不离口”的。