C++ string基本用法

strings.cpp

#include <iostream>
#include "strings.h"
#include "string"
#include "utils.cpp"

using namespace std;

void toString(string *pString);

void toString(string pString);

void showStrings() {
    string *maqi = new string("maqi");
    string *user = new string("user");
    maqi->append("123");
    cout << "maqi = " << *maqi << endl;
    cout << "user = " << *user << endl;
    user->compare(*maqi);
    cout << "user>maqi = " << (*user > *maqi) << endl;
    *user += "100";
    cout << "user = " << *user << endl;
    cout << "*user == *maqi = " << (*user == *maqi) << endl;
    cout << "*user >= *maqi = " << (*user >= *maqi) << endl;
    cout << "*user <= *maqi = " << (*user <= *maqi) << endl;

    const char *name = "name : tom";
    char hobby[] = {"hobby:basketball"};
//    string &operator=(const string &s);    //把字符串s赋给当前字符串
    string *newUser = new string("");
    toString(newUser);
//    string &assign(const char *s);                //用C类型字符串s赋值
    newUser->assign(name);
    toString(newUser);
//    string &assign(const char *s,int n);        //用C字符串s开始的n个字符赋值
    newUser->assign(hobby, 1);
    toString(newUser);
//    string &assign(const string &s);            //把字符串s赋给当前字符串
    newUser->assign(*maqi);
    toString(newUser);
//    string &assign(int n, char c);                    //用n个字符c赋值给当前字符串
    newUser->assign(1, 'c');
    toString(newUser);
//    string &assign(const string &s, int start, int n);    //把字符串s中从start开始的n个字符赋给当前字符串
    newUser->assign("c", 0, 1);
    toString(newUser);
//    string &assign(const_iterator first,const_itertor last);    //把 first 和 last 迭代器之间的部分赋给字符串
    newUser->assign(user->begin(), user->end());
    toString(newUser);
    const string &substr_string = newUser->substr(2, 2);
    toString(substr_string);
    int index = newUser->find('u', 0);//默认为-1 和java一样
    int rindex = newUser->rfind('u', 0);//默认为-1 和java一样
    cout << "find('c',0)  index= " << index << endl;
    cout << "find('c',0)  rindex= " << rindex << endl;
    newUser->replace(0, 1, name, getArrayLen(name));
    toString(newUser);

    string *replace = new string("replace");
    //这里要的C的字符串replace->c_str(),或者 replace_[],char*都行
    char replace_[] ="replace";
    newUser->replace(newUser->begin(), newUser->end(), /*replace->c_str()*/replace_);
    toString(newUser);

    newUser->insert(0, *replace);//插入字符串
    toString(newUser);

    newUser->erase(0, 1);//删除第一个字符
    toString(newUser);
    newUser->erase(newUser->begin()+1);
    toString(newUser);
    newUser->erase(newUser->end() - 1);
    toString(newUser);
    newUser->erase(newUser->begin(), newUser->end() - 1);
    toString(newUser);

}

void toString(string *pString) {
    cout << "toString = " << *pString << endl;
}

void toString(string pString) {
    cout << "toString = " << pString << endl;
}

输出:

maqi = maqi123
user = user
user>maqi = 1
user = user100
*user == *maqi = 0
*user >= *maqi = 1
*user <= *maqi = 0
toString =
toString = name : tom
toString = h
toString = maqi123
toString = c
toString = c
toString = user100
toString = er
find('c',0)  index= 0
find('c',0)  rindex= 0
toString = nameser100
toString = replace
toString = replacereplace
toString = eplacereplace
toString = elacereplace
toString = elacereplac
toString = c

总结:
1.这个string和java的String蜜汁相。
2.assign兼容C的char* 和char[]。
3.string的增删查改APi比较多,这边有几个关键供参考。

猜你喜欢

转载自blog.csdn.net/qq_20330595/article/details/82346771