c++常见操作
1.读取一行
getline(cin, str);
2.字符串分割
vector<string> split(const string &str, const string &pattern)
{
vector<string> res;
if(str == "")
return res;
string strs = str + pattern;
size_t pos = strs.find(pattern);
int len = strs.length();
while(pos != strs.npos)
{
string temp = strs.substr(0, pos);
res.push_back(temp);
strs = strs.substr(pos+1, len);
pos = strs.find(pattern);
}
return res;
}
3.查找字符串出现的次数
int getCount(string src, string dst)
{
int num = 0;
int pos = -1;
do
{
pos = src.find(dst, pos+1);
num++;
}while(pos != string::npos);
return (num - 1);
}
4.小写转大写
void strlToU(string &str)
{
for (int i = 0; i < str.length(); i++)
{
if (str.at(i) >= 'a' && str.at(i) <= 'z')
{
str.at(i) -= 'a' - 'A';
}
}
}
5.结构体数据比较(不交换顺序)
typedef struct
{
int data;
}ONE_DATA_S;
vector<ONE_DATA_S> vec;
bool cmpUToL(const ONE_DATA_S &a, const ONE_DATA_S &b)
{
return a.data > b.data;
}
bool cmpLToU(const ONE_DATA_S &a, const ONE_DATA_S &b)
{
return a.data < b.data;
}
stable_sort(vec.begin(), vec.end(), cmpUToL);