string

string,第1张

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="<

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/3002447.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-09-27
下一篇 2022-09-27

发表评论

登录后才能评论

评论列表(0条)