假设我想复制一个字符串,然后将一个值连接到它。
使用 stl std::string,它是:
string s = "hello" ;
string s2 = s + " there" ; // effectively dup/cat
在 C 中:
char* s = "hello" ;
char* s2 = strdup( s ) ;
strcat( s2, " there" ) ; // s2 is too short for this operation
我知道在 C 中执行此操作的唯一方法是:
char* s = "hello" ;
char* s2=(char*)malloc( strlen(s) + strlen( " there" ) + 1 ) ; // allocate enough space
strcpy( s2, s ) ;
strcat( s2, " there" ) ;
在 C 中是否有更优雅的方法来做到这一点?