C++ std::string

1. STL中的 string 类型支持类似java中的直接进行字符串相加,但是不支持相减

#include <iostream>
#include <string>

using namespace std;

int main()
{
    string str = "Hello World";
    str += " I am comming!";
    cout << str << endl; //只能+=,不能-=

    int a = 123456;
    str = to_string(a); //c++11引入的,编译时需要加上-std=c++11
    cout << a << endl;
    printf("str=%s\n", str.c_str()); //string和char*转换

    return 0;
}

$ g++ std_string.cpp -o pp -std=c++11
$ ./pp
Hello World I am comming!
123456
123456

2. 常用demo

(1) 字符串拼接

#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int std_string_test(void) {
    int tid = 1122;
    //int tid = gettid(); //无法调用成功
    std::string str = "/proc/" + std::to_string(tid) + "/comm";
    cout << str << endl; // /proc/1122/comm
    cout << str.c_str() << endl; // /proc/1122/comm
}

int main()
{
    std_string_test();
    return 0;
}

(2)字符串比较

#include <iostream>
#include <string>

int main ()
{
  std::string str1 ("green apple");
  std::string str2 ("red apple");

  if (str1.compare(str2) != 0)
    std::cout << str1 << " is not " << str2 << '\n';

  if (str1.compare(6, 5,"apple") == 0) //只比较str1中的apple字段
    std::cout << "still, " << str1 << " is an apple\n";

  if (str2.compare(str2.size()-5, 5, "apple") == 0) //只取str2的最后5个字符进行比较
    std::cout << "and " << str2 << " is also an apple\n";

  if (str1.compare(6, 5, str2, 4, 5) == 0) //str从第6个字符开始和str2的从第4个字符开始,比较5个字符
    std::cout << "therefore, both are apples\n";

  return 0;
}

/*
$ g++ std_string.cpp -o pp
$ ./pp
green apple is not red apple
still, green apple is an apple
and red apple is also an apple
therefore, both are apples
*/

(3) 字符串拼接

std::string path_name = "/proc/" + std::to_string(getpid()) + "/task/" + std::to_string(gettid()) + "/status";

 

 

 

 

优秀博文:

std::string简介及其使用:https://www.cnblogs.com/leaves1024/p/10270753.html

【C++ STL String】常用操作: https://www.jianshu.com/p/90584f4404d2
std:string: https://blog.csdn.net/L_insting/article/details/110149869

 

posted on 2021-06-28 20:59  Hello-World3  阅读(201)  评论(0编辑  收藏  举报

导航