赋值操作
#include<iostream>
#include<iterator>
#include<string>
#include<cassert>
int main()
{
{
std::string s;
assert(s.empty() && (s.length() == 0) && (s.size() == 0));
}
{
std::string s(4, '=');
std::cout << s << std::endl;
}
{
std::string const other("Exemplary");
std::string s(other, 0, other.length() - 1);
std::cout << s << std::endl;
}
{
std::string s("C-style string", 7); //取前7个
std::cout << s << std::endl;
}
{
std::string s("C-style\0string"); //到\0处截止
std::cout << s << std::endl;
}
{
char mutable_c_str[] = "another C-style string";
std::string s(std::begin(mutable_c_str) + 8, std::end(mutable_c_str) - 1);
std::cout << s << std::endl;
}
{
std::string const other("Exemplar");
std::string s(other);
std::cout << s << std::endl;
}
{
std::string s(std::string("C++ by ") + std::string("example"));
std::cout << s << std::endl;
}
{
std::string s({ 'C', '-', 's', 't', 'y', 'l', 'e' });
std::cout << s << std::endl;
}
system("pause");
return 0;
}
assign的一些运用<pre name="code" class="cpp">int main()
{
std::string s;
s.assign(4, '=');
std::cout << s << std::endl;
std::string const c("Exemplary");
s.assign(c);
std::cout << s << std::endl;
s.assign(c, 0, c.length() - 1);
std::cout << s << std::endl;
s.assign(std::string("C++ by ") + std::string("example"));
std::cout << s << '\n';
s.assign("C-style string", 7);
std::cout << s << '\n';
char mutable_c_str[] = "C-style string";
s.assign(std::begin(mutable_c_str), std::end(mutable_c_str) - 1);
std::cout << s << std::endl;
system("pause");
}
at的一些操作 及异常的简单使用
int main()
{
std::string s("message");
s = "abc";
s.at(2) = 'x';
std::cout << s << std::endl;
std::cout << "string size = " << s.size() << std::endl;
std::cout << "string capacity = " << s.capacity() << std::endl;
try{
s.at(3) = 'x';
}
catch (std::out_of_range const& exc){
std::cout << exc.what() << std::endl;
}
system("pause");
}