C++中string用法详解

文章目录构造函数(Constructors)操作符(Operators)添加文本(append)赋值(assign)atbeginc_str容量(capacity)比较(compare)拷贝(copy)dataemptyend删除(erase)查找(find)find_first_offind_first_not_offind_last_offind_last_not_ofget_allocat...
摘要由CSDN通过智能技术生成

构造函数(Constructors)

语法:

string();   
string( size_type length, char ch );   
string( const char *str );   
string( const char *str, size_type length );   
string( string &str, size_type index, size_type length );   
string( input_iterator start, input_iterator end ); 

字符串的构造函数创建一个新字符串,包括:

  • 以length为长度的ch的拷贝(即length个ch)
  • 以str为初值 (长度任意),
  • 以index为索引开始的子串,长度为length, 或者
  • 以从start到end的元素为初值.

例如,

    string str1( 5, 'c' );
    string str2( "Now is the time..." );
    string str3( str2, 11, 4 );
    cout << str1 << endl;
    cout << str2 << endl;
    cout << str3 << endl;

显示

    ccccc
    Now is the time...
    time 

操作符(Operators)

语法:

`  ==   >   <   >=   <=   !=   +   +=   [] `

你可以用 ==, >, <, >=, <=, and !=比较字符串. 可以用 + 或者 += 操作符连接两个字符串, 并且可以用[]获取特定的字符.


添加文本(append)

语法:

basic_string &append( const basic_string &str );   
basic_string &append( const char *str );  
basic_string &append( const basic_string &str, size_type index, size_type len );   
basic_string &append( const char *str, size_type num );   
basic_string &append( size_type num, char ch );   
basic_string &append( input_iterator start, input_iterator end );

append() 函数可以完成以下工作:

  • 在字符串的末尾添加str,
  • 在字符串的末尾添加str的子串,子串以index索引开始,长度为len
  • 在字符串的末尾添加str中的num个字符,
  • 在字符串的末尾添加num个字符ch,
  • 在字符串的末尾添加以迭代器start和end表示的字符序列.

例如以下代码:

    string str = "Hello World";
    str.append( 10, '!' );
    cout << str << endl;

显示

    Hello World!!!!!!!!!!

赋值(assign)

语法:

basic_string &assign( const basic_string &str );   
basic_string &assign( const char *str );   
basic_string &assign( const char *str, size_type num );   
basic_string &assign( const basic_string &str, size_type index, size_type len );   
basic_string &assign( size_type num, char ch );

函数以下列方式赋值:

  • 用str为字符串赋值,
  • 用str的开始num个字符为字符串赋值,
  • 用str的子串为字符串赋值,子串以index索引开始,长度为len
  • 用num个字符ch为字符串赋值.

例如以下代码:

    string str1, str2 = "War and Peace";
    str1.assign( str2, 4, 3 );  
    cout << str1 << endl;

显示

    and


at

语法:

`  reference at( size_type index ); `

at()函数返回一个引用,指向在index位置的字符. 如果index不在字符串范围内, at() 将报告"out of range"错误,并抛出out_of_range异常。 比如下列代码:

    string text = "ABCDEF";
    char ch = text.at( 2 );

显示字符 ‘C’.


begin

语法:

`  iterator begin(); `

begin()函数返回一个迭代器,指向字符串的第一个元素.

相关主题:
end()


c_str

语法:

`  const char *c_str(); `

c_str()函数返回一个指向正规C字符串的指针, 内容与本字符串相同.


容量(capacity)

语法:

`  size_type capacity(); `

capacity()函数返回在重新申请更多的空间前字符串可以容纳的字符数. 这个数字至少与 size()一样大.

相关主题:
max_size(), reserve(), resize(), size()


比较(compare)

语法:

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值