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比较多,这边有几个关键供参考。