C中char型字符串是以‘\0’为结束标志的,如果char型字符串中间有多个‘\0’,那么直接用它去初始化string对象会被截断(只到第一个‘\0’处),所有输入参数为char*类型的函数都不能直接用来处理这种中间含有‘\0’的char字符串,比如strcpy,string(const char *str = NULL)这种构造函数等等。
例如:
char *s= "asgf\0hjg\0dfy";
那么string a(s)就只会把s中第一个‘\0’前的字符串赋给a。
C中char型字符串是以‘\0’为结束标志的,如果char型字符串中间有多个‘\0’,那么直接用它去初始化string对象会被截断(只到第一个‘\0’处),所有输入参数为char*类型的函数都不能直接用来处理这种中间含有‘\0’的char字符串,比如strcpy,string(const char *str = NULL)这种构造函数等等。
例如:
char *s= "asgf\0hjg\0dfy";
那么string a(s)就只会把s中第一个‘\0’前的字符串赋给a。