w一 string函数
- #include
- 只能用cin cout
- 读入整行的时候,若为char变量 getline(str, 100) char str[100].若为string变量 getline(cin.str)
- ±是拼起来 string a = 123 string b = 50 a + b = 12350 b + a = 50123
- return a+ b < b+a 返回拼起来最小的那个
- 两个string可直接比较 按照字典序
- string长度为 str.length()或string.size()
- str.insert(pos,string)//在str[pos]处插入字符串string
- insert(it(原字符欲插位置),it2,it3)//后面两个为首尾迭代器 str.insert(str.begin() + 3, str2.begin(), str2.end())
- str.erase(str.begin() + 4) //删除单个元素
- str.erase(str.begin() + 2, str.end()-1)//删除这个区间内所有函数
- str.clear() 清空字符串
- str.substr(pos,len) 返回从pos位开始 长度为len的字符串
- string::npos 作为find函数失配时的返回值
- str.find(str2) // 当str2是str字串时 返回其在str 第一次出现的位置 不然返回string::npos
- str.find(str2,pos)//从str的pos位开始匹配
- str.replace(pos,len,str2)//从pos位开始 长度为len的字串替换为str2
- str(it1, it2, str2) 把str的迭代器在【it1, it2)范围内替换为 str2;str(str.begin(), str.begin() + 5, str3);
- string week[7] = {"MON ", "TUE ", "WED ", "THU ", "FRI ", "SAT ", "SUN "};
二 “set函数”
- 内部自动有序且不重复的容器 #include
`set<int> st
st.insert(3)
st.insert(2)
st.insert(5)
st.insert(3)
ouput 2 3 5
set内部自动递增排序去重
- st.size()表示set内元素个数 set.clear()表示清空set内部所有元素
set<int>::iterator it = st.find(2);//在set中查找2 返回其迭代器
3. printf("%d", *it)
3 erase与find连用
. max()与 min函数 与 abs()都在#include 若求三个xyz最大值 则 max(x, max(y, z));
2. abs(x)返回x的绝对值 x必须为整数 若为浮点数 则用fabs(x);
3. swap(x, y) 交换x与y的值
4. fill(a, a+5, 233)//将数组这一区间的值全部赋为233
5. upper_bound(first, last, val) 用来寻找【first, last)范围内第一个大于val的值
6. lower_bound是找第一个大于等于的值
7.
8. isdigit函数 isdigit(char c)
用法:#include <ctype.h>
功能:判断字符c是否为数字
说明:当c为数字0-9时,返回非零值,否则返回零。
2. isalpha
原型:int isalpha( int c )
头文件:C++ (C语言使用<ctype.h>)
功能:判断字符c是否为英文字母
说明:若为英文字母,返回非0(小写字母为2,大写字母为1)。若不是字母,返回0
在标准c中相当于使用“ isupper( c ) || islower( c ) ”做测试
- isupper
原型:extern int isupper(int c);
头文件:(旧版本的编译器使用<ctype.h>)
功能:判断字符c是否为大写英文字母
说明:当参数c为大写英文字母时,返回非零值,否则返回零
附加说明: 此为宏定义,非真正函数
- islower(char c)
原型:int islower(int c)
头文件:#include(旧版本的编译器使用<ctype.h>)
功能:测试字符c是否为小写字母
说明:若参数c为小写英文字母,则返回TRUE,否则返回NULL(0)
附加说明:此为宏定义,非真正函数。
- 一 tolower函数
1.功 能: 把字符转换成小写字母,非字母字符不做出处理。
2.头文件:在VC6.0可以是ctype.h或者stdlib.h,常用ctype.h
3.目前在头文件iostream中也可以使用,C++ 5.11已证明。
4.原函数: int tolower(int c);
5.用法:tolower(ch)
#include <iostream>
#include <string>
#include <cctype>
using namespace std;
int main()
{
string str = "THIS IS A STRING";
for (int i=0; i <str.size(); i++)
str[i] = tolower(str[i]);//把大写全部转为小写
cout<<str<<endl;
return 0;
}
二 toupper函数
1.原型:int toupper(int c);
2.头文件:#include <ctype.h>;
3.功能:将小写英文字母 转换为大写英文字母。
4.说明:如果c为小写英文字母,则返回对应的大写字母;否则返回原来的
三 2、stoi和atoi
包含在#include<string>,不是c++11的可以在#include<cstring>。作用是将字符串转化为int型。区别是stoi的形参是const string*,而atoi的形参是const char*。c_str()的作用是将const string*转化为const char*。
①atoi()的参数是 const char* ,因此对于一个字符串str我们必须调用 c_str()的方法把这个string转换成 const char类型的,而stoi()的参数是const string,不需要转化为 const char*;
②stoi()会做范围检查,默认范围是在int的范围内的,如果超出范围的话则会runtime error!而atoi()不会做范围检查,如果超出范围的话,超出上界,则输出上界,超出下界,则输出下界;
string s1("1234567");
char* s2 = "1234567";
int a = stoi(s1);
int b = atoi(s2);
int c = atoi(s1.c_str());
cout << a << endl;
cout << b << endl;
cout << c << endl;