C++字符串
动态字符串
C++中定义一些来自c语言的字符串函数,在头文件
- strlen(str)返回字符串长度,不包括
\0
使用安全C库: strlen_s
也在
C++的string类
#include <string>
using namespace std;
const string s1("hello");
const string s2 = " world";
string s3 = s1 + s2;
在string类中,运算符
==, +,>,<,[]
等都被重载了
数值转换
string to_char(int);
string to_char(unsigned);
string to_char(long);
string to_char(unsigned long);
string to_char(long long);
...
demo
float f = 3.14;
string s3 =to_string(f);
cout << s3 << endl; /// 3.140000
int stoi(const string& str, size_t * idx = 0, int base = 10);
字符串转数值,idx: 未转换字符的索引,base:进制
demo
string s = "3.14";
float f = stof(s);
cout << f << endl;
原始字符串
- 单行
"hello \"world \""
等价于:
R"(hello "world ")"
- 跨行
R"(hello
world)"
- 特殊字符
()
使用不会出现的字符作为分隔字符,如:
R"-hello (wolrd) !-"
在C++14中,只能使用()作为开始结束标识符,并且中间也可以输入括号字符
string s = R"(hello )wolrd) !)"; // C++14中合法