C++ 如何更改字符串的长度

C++ 如何更改字符串的长度,c++,string,C++,String,创建字符串时,字符串的长度是否为常量 如何更改字符串的长度 我只知道s.length()返回字符串的长度,但不知道如何更改它 多谢各位 创建字符串时,字符串的长度是否为常量 否,std::string类用于动态管理底层char数组占用的内存(从而更改其长度) “如何更改字符串的长度?” 有很多方法可以更改std::string实例的length()值。例如函数。您可以使用方法resize,该方法对于类std::string 比如说 std::string s( "Hello" ); s.res

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

如何更改字符串的长度

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

多谢各位

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

否,
std::string
类用于动态管理底层
char
数组占用的内存(从而更改其长度)

“如何更改字符串的长度?”


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

您可以使用方法
resize
,该方法对于类
std::string

比如说

std::string s( "Hello" );

s.resize( 10 );
std::string s( "Hello" );

s.append( 10 - s.size(), char() );
const std::string s( "Hello" );
在这种情况下,字符串将附加零('\0')。 或

在本例中,字符串附加空格

也可以使用方法append。比如说

std::string s( "Hello" );

s.resize( 10 );
std::string s( "Hello" );

s.append( 10 - s.size(), char() );
const std::string s( "Hello" );

这些代码段与前面的代码段等效

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

std::string s( "Hello" );

s.resize( 10 );
std::string s( "Hello" );

s.append( 10 - s.size(), char() );
const std::string s( "Hello" );
字符串的长度是5

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


在C语言中,可以使用可变长度数组。

什么是“更改”意思?你想切掉什么还是插入什么?(你可以同时做这两件事。)你问题的表述不清楚。您想更改字符串的长度是出于什么目的?为什么要更改字符串的长度?查找并阅读它。你不能期望每次都问StackOverflow关于你正在使用的工具的一个非常非常基本的问题。@ravi“你为什么要更改字符串的长度”。的确,他有这种煽动性的想法是非常可疑的!:)聪明的回答…但在OP证明这样做的理由之前,这是无关紧要的。@ravi更改字符串长度的理由很多。OP不必证明任何内容。@CaptainObvlious如果OP想通过删除字符串开头的字符来更改长度,该怎么办。这是否考虑到了…@ravi我投票结束这个问题,因为“不清楚你在问什么”。如果您认为问题不清楚,请向下投票/标记/关闭投票或回答。你有足够的代表这样做。。。