C++ string特性

std::string::push_back
void push_back (char c);
Append character to string
把char加到string的后面(C++String和Char由于兼容(C语言)问题,并不想其他语言一样字符和字符串相统一)
std::string::append
Append to string
Extends the string by appending additional characters at the end of its current value:
把string加到string的后面

#include<string>
using std::string
string S;
S = "abcd";
S.append("e");
S.push_back('f');

std::string::assign
Assign content to string
Assigns a new value to the string, replacing its current contents.

#include<string>
std::string S("1234");//S:"1234"
S.assign("hahah999");//S:"hahah999"
S.assigh("hahah999", 4, 2);//S:"h9"

std::string::insert
Insert into string
Inserts additional characters into the string right before the character indicated by pos (or p):
string::insert()对string和char均适用

#include<string>
std::string S("123456");
S.insert(3, "hahah");//S:"123hahah456"

std::string::erase
Erase characters from string
Erases part of the string, reducing its length:

#include<string>
String S("123456");
S.erase();//S.empty: True
S.append("abcd");
S.erase(1,2);//S: "ad"

std::string::replace
Replace portion of string
Replaces the portion of the string that begins at character pos and spans len characters (or the part of the string in the range between [i1,i2)) by new contents:

#include<string>
std::string S("123456");
S.replace(1,2,"abcd", 2);//string
S.replace(1,2,,2,'e')//char

std::string::replace
Another string object, whose value is swapped with that of this string.
并不是很常用

#include<string>
std::string S("123456");
S.swap("7890");//S = "7890";

C++11std::string::pop_back()
Delete last character
Erases the last character of the string, effectively reducing its length by one.
为了std中vector等用法统一

#include<string>
std::string S("123456");
S.pop_back();

std::string::size
std::string::length
std::string::max_size
std::string::resize
std::string::capacity
std::string::reserve
std::string::clear
std::string::empty
C++11 std::string::shrink_to_fit:
Requests the string to reduce its capacity to fit its size.

The request is non-binding, and the container implementation is free to optimize otherwise and leave the string with a capacity greater than its size.

This function has no effect on the string length and cannot alter its content.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: C++ 标准库中的 `string` 类型是用来表示和操作字符串的类。它在 `<string>` 头文件中定义。 `string` 类使用动态数组来存储和管理字符串。它具有许多方便的成员函数,可以进行字符串的插入、删除、查找、拷贝、连接、子串提取等操作。 `string` 类的源码是由 C++ 标准委员会实现,通常是在编译器的标准库中。由于 `string` 是一个模板类,其实现需要一些复杂的底层操作,如内存管理、字符串拷贝、字符大小比较等。 源码的具体实现可能因不同编译器而异,但一般会使用指针、指针运算、动态内存分配等技术来实现字符串的存储和操作。可以通过查看 C++ 标准库的实现源码来了解具体的细节。 总的来说,`string` 类是 C++ 标准库中用于处理字符串的类,其源码实现了字符串的存储和操作功能,常用于编写 C++ 程序中字符串的处理和操作。 ### 回答2: C string是C语言中用于表示字符串的一种数据类型,它是以null字符('\0')结尾的字符数组。在C语言中,字符串常常是用字符数组来表示的,而C string则是对字符数组的一种封装。 在C语言中,字符串常常是以字符数组的形式存储的,例如: char str[10] = "Hello"; 这里str是一个字符数组,它可以存储10个字符,包括字符串"Hello"的5个字符和一个结尾的null字符。 而C string则是对于字符数组的一种封装,它提供了一些用于操作字符串的函数,比如字符串的复制、连接、查找等等。C string的源码可以在C标准库中找到,一般是以头文件的形式提供给开发者使用。 在C标准库中,有很多与C string相关的函数,比如strcpy()函数用于复制字符串、strcat()函数用于连接字符串、strlen()函数用于获取字符串的长度等等。这些函数都是通过操作字符数组来实现的,对于开发者来说,可以直接调用这些函数来进行字符串操作,无需关心具体的实现细节。 C string的源码一般会包含在C标准库的源码中,开发者可以在编译器的安装目录下找到相应的源码文件。这些源码文件一般是以.c或者.cpp文件的形式存在,其中定义了与C string相关的各种函数的实现。 总之,C string是C语言中用于表示字符串的一种数据类型,它是通过对字符数组的封装来实现的。开发者可以直接使用C string提供的函数来进行字符串操作,而无需关心具体的实现细节。 C标准库中提供了与C string相关的函数的源码,开发者可以查看这些源码来了解其具体实现。 ### 回答3: C++中的字符串类 string 是一个非常常用的数据类型,它属于标准库中的一部分,主要用于处理字符串。 在C++的标准库中,string 类被定义在头文件<iostream>或<string>中。通过使用 string 类,我们可以方便地进行字符串的输入、输出、连接、比较等操作。 string 类的内部实现是以动态数组的形式存储字符串的每个字符,并且在需要的时候进行动态内存分配和释放。这也使得 string 类具有了自动管理内存的特性,更加方便和安全。 C++中的 string 类提供了许多常用的成员函数,例如 size()、length()、empty()、clear()等,用于获得字符串的长度、判断字符串是否为空、清空字符串等操作。此外,还可以通过下标访问字符串中的每个字符,对字符串进行遍历和修改。 string 类支持字符串的连接、拷贝和比较等功能。可以使用“+”操作符实现字符串的连接,使用“=”,“==”等操作符进行拷贝和比较。另外,string 类还提供了一些方便的函数,如 append()、substr()等,用于对字符串进行添加和截取等操作。 总的来说,C++中的 string 类简化了字符串的处理过程,提供了丰富的成员函数和操作符,使得字符串的操作更加简单、高效和安全。所以,在C++中如果需要处理字符串,string 类是一个不错的选择。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值