1 .在c中求string类型的长度有三种方法。
在c中,string表示类,并且有自己的构造函数和成员函数。
要计算字符串类型的长度,有两个成员函数。
length ) )成员函数。
size ) )成员函数。
可以使用strlen函数,但前提是必须将string类型的字符串转换为char*类型。
strlen(char* )函数求出字符串的实际长度。 其求法为:最初的' ',# include iostream # includecstringusingnamespacestd; int main () strings ' aaaaaaa ); int length1=s.length (; int length2=s.size (; intlength3=Strlen(s.c_str ) ); cout length1' ' length2' ' length3endl; 返回0; () ) ) ) )。
输出结果如下。
2.c_str (函数用法说明
函数原型:
const char* c_str () const;
返回值:
c_str ) )函数返回指向c字符串的指针常量。 此指针常量是字符串对象的当前内容加上其他终止字符( )。
因为c语言没有string类型,所以要将string对象转换为c的字符串样式,必须使用string类对象的成员函数c_str ()。
c_str ) )函数返回临时指针,使用时请小心。 以下用两个代码进行说明。
# include iostream # includecstringusingnamespacestd; int main () strings ' aaaaaaa ); const char* c; c=s.c_str (; //数组c指向字符串s。 数组中的数据是临时的,调用更改这些数据的成员函数时,该数据将变为无效。 coutcendl; s='abcdefgk '; //修改字符串s的内容时,c指示的字符串发生了变化,所以c也发生了变化。 coutcendl; 返回0; }程序输出:
修改字符串s的内容后,再次输出c数组,可以看到其内容发生了变化。 很明显,这种做法不是我们想要的。
要将数组c复制为字符串而不是临时指针,请使用复制字符串函数strcpy ()进行操作。
复制字符串数组的内容。
c_str (要正确使用函数,请按如下方式使用:
# include iostream # includecstringusingnamespacestd; int main () strings ' aaaaaaa ); //改进,字符串复制函数char* c=new char[20]; //c_str ) )返回指向客户端程序可读的不可修改字符数组的指针。 您不需要手动释放或删除此指针。 srcpy(c,s.c_str ) ); coutcendl; s='abcdefgk '; coutcendl; 返回0; }程序输出: