创建字符串时,字符串的长度是否为常量?
如何更改字符串的长度?
我只知道s.length()
返回字符串的长度,但不知道如何更改它。
答案 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中你可以使用可变长度数组。