string的 *** 作在C++里 *** 作很像stl,有clear等 *** 作
参考博客:(100条消息) C++——std::String_zy2317878的博客-CSDN博客_c++ std::string
又具备顺序容器的特点,可以直接调用[ i ]来进行访问
构造string
// string constructor
#include
#include
int main ()
{
std::string s0 ("Initial string"); //根据已有字符串构造新的string实例
// constructors used in the same order as described above:
std::string s1; //构造一个默认为空的string
std::string s2 (s0); //通过复制一个string构造一个新的string
std::string s3 (s0, 8, 3); //通过复制一个string的一部分来构造一个新的string。8为起始位置,3为偏移量。
std::string s4 ("A character sequence"); //与s0构造方式相同。
std::string s5 ("Another character sequence", 12); //已知字符串,通过截取指定长度来创建一个string
std::string s6a (10, 'x'); //指定string长度,与一个元素,则默认重复该元素创建string
std::string s6b (10, 42); // 42 is the ASCII code for '*' //通过ASCII码来代替s6a中的指定元素。
std::string s7 (s0.begin(), s0.begin()+7); //通过迭代器来指定复制s0的一部分,来创建s7
std::cout << "s1: " << s1 << "\ns2: " << s2 << "\ns3: " << s3;
std::cout << "\ns4: " << s4 << "\ns5: " << s5 << "\ns6a: " << s6a;
std::cout << "\ns6b: " << s6b << "\ns7: " << s7 << '\n';
return 0;
}
//Output:
//s1:
//s2: Initial string
//s3: str
//s4: A character sequence
//s5: Another char
//s6a: xxxxxxxxxx
//s6b: **********
//s7: Initial
Operation =
// string assigning
#include
#include
int main ()
{
std::string str1, str2, str3;
str1 = "Test string: "; // c-string //通过=运算符来给已创建的string“赋值”
str2 = 'x'; // single character
str3 = str1 + str2; // string
//注意这里重载了"+",string类的"+"可以理解为胶水,将两个string类型连接起来了
std::cout << str3 << '\n';
return 0;
}
//Output:
//Test string: x
某种程度来讲,string就是一个STL
length() 和size()都可以返回 实际长度,max_size()可以返回可以容纳最大字符长度
at
at可以返回指定位置的char
append:添加到后面
// appending to string
#include
#include
int main ()
{
std::string str;
std::string str2="Writing ";
std::string str3="print 10 and then 5 more";
// used in the same order as described above:
str.append(str2); // "Writing "
str.append(str3,6,3); // "10 "
str.append("dots are cool",5); // "dots "
str.append("here: "); // "here: "
str.append(10u,'.'); // ".........."
str.append(str3.begin()+8,str3.end()); // " and then 5 more"
str.append(5,0x2E); // "....."
std::cout << str << '\n';
return 0;
}
//Output:
//Writing 10 dots here: .......... and then 5 more.....
push_back。。。。
erase(val) 删除val元素
pop_back 删除最后一个元素
str_res.find(str[i]) != str_res.npos
上句的意思是在string中找到了相应的char或者短string找到了,.nops即为-1
add
string和int的互相转换
string to_string (int val);
string to_string (long val);
string to_string (long long val);
string to_string (unsigned val);
string to_string (unsigned long val);
string to_string (unsigned long long val);
string to_string (float val);
string to_string (double val);
string to_string (long double val)
//不仅int可以转换成string,这些都可以哦~
#include "string"
#include "iostream"
int main()
{
int a = 12;
std::string str = std::to_string(a); //int 转string
int b;
b = atoi(str.c_str());
std::cout<<"b="<
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)