如何改变字符串的长度

时间:2014-11-29 16:49:12

标签: c++ string

创建字符串时,字符串的长度是否为常量?

如何更改字符串的长度?

我只知道s.length()返回字符串的长度,但不知道如何更改它。

谢谢。

2 个答案:

答案 0 :(得分:3)

  

"创建字符串时,字符串的长度是否为常量?"

不,std::string类旨在动态管理底层char数组占用的内存(从而改变它的长度)。

  

"如何更改字符串的长度?"

有很多方法可以更改length()实例的std::string值。例如,一个是std::string::resize()函数。

答案 1 :(得分:1)

您可以使用为类resize重载的方法std::string

例如

std::string s( "Hello" );

s.resize( 10 );

在这种情况下,字符串将附加零('\ 0')。 或

std::string s( "Hello" );

s.resize( 10, ' ' );

在这种情况下,字符串附加空格。

您也可以使用方法追加。例如

std::string s( "Hello" );

s.append( 10 - s.size(), char() );

std::string s( "Hello" );

s.append( 10 - s.size(), ' ' );

这些代码段与以前的代码段相同。

考虑到如果你要创建一个常量字符串,那么它的长度确实是常量。:)例如

const std::string s( "Hello" );

字符串的长度为5。

如果你的意思是字符数组,那么在C ++中你可能不会改变它们的长度,因为它们应该是常量表达式。虽然有些编译器有一些语言扩展。

在C中你可以使用可变长度数组。