getline(cin,s):读入一个包含空格的字符串
cin>>s:读入一个不包含空格的字符串
cout<
s.size() :求长度
s1>s2:直接比较大小
s+=t:拼接字符串
for(char c:s){ c... }:遍历字符串中每一个元素
for(int i=0;i
最小值:INT_MIN 、LLONG_MIN
最大值:INT_MAN 、LLONG_MAX
如,输入并求最小值
int n,x,mi=INT_MAX;
for(int i=0;i>x;
if(x>mi;
s.find(str) //返回 substr第一次出现的s下标,s中无则返回-1(string::npos)
s.find(str,index)//在s[index]后再寻找str
s.rfind(str)//反向查找,找到第一个str/char
s.substr(index,substr_len) // index截取位置,substr_len是截取长度(不写默认到最后)
//子序列的判断(判断t中是否有p,必须连续)
#include
#include
using namespace std;
int main() {
string p, t;
cin >> p >> t;
if (t.find(p) != string::npos) {
cout << "Yes" << endl;
} else {
cout << "No" << endl;
}
return 0;
}
#include
#include
using namespace std;
int main() {
string p, t;
cin >> p >> t;
int n = t.size(), m = p.size();
bool found = false;
for (int i = 0; i <= n - m; ++i) { // 枚举主串起点
int j = 0;
while (j < m && t[i + j] == p[j]) { // 从 i 开始逐一比对
++j;
}
if (j == m) { // 成功匹配
found = true;
break;
}
}
if (found) cout << "Yes" << endl;
else cout << "No" << endl;
return 0;
}
s.erase(s.begin()+n)//删除第n个字符
s.erase(index,len)//删除index后长度为len的所有字符
s.erase(s.begin(),s.end())//删除i~j内所有元素
常与remove()一起用:
例如:s.erase(remove(s.begin(),s.end(),'*'),s.end());
补充:remove() 不会真正删除元素,而是在一定范围内[s.begin(),s.end())通过移动元素(不等于value的元素)来覆盖要移除的值(value),返回移动后的最后一个非value值所在位置的下一个位置的迭代器。
示例:
对于数组 [1, 2, 3, 2, 4, 2]
,调用 remove(arr, arr+6, 2)
后:
[1, 3, 4, 2, 4, 2]
(前三个元素是有效元素)。2
)。s.insert()
s.replace(i,len,str)//把 s[i]~s[i+len] 删除,换成 str
s.replace(i,len,n,c)//把 s[i]~s[i+len] 删除,换成 n个c
s.replace(first,last,t.first,t.last)//把s的某区间字符串替换成t某区间(迭代器表示)
std::replace(s.begin(),s.end(),a,b)//全局函数,在algorithm中,把s中所有的a替换成b
例题,把s中所有c1转换成c2
do { int p=s.find(c1);
s.replace(p,1,c2);
} while(p!=string::npos);
isalpha(c);islower(c) ; isupper(); isdigit(c) ; //判断字母、小写、大写、数字的,0假,非0真
tolower(c) ; toupper(c); //大写转小写,小写转大写
sort(s.begin(),s.end())//注意 s.end()获取的是s中最后字符的位置+1
sort(s.begin(),s.end(),greater
() ) // greater
中Type可以是() int
,char
,double
reverse(s.begin(),s.end())
字符变数字:c-‘0’ 得到5; 数字变字符:c+'0' 得到‘c’ ;字符串变数字:num=num*10 + s[i]-'0'
stoi(s): 把 数字字符串s 转换成 int数字 "256"—>256
stoll(s): 把 数字字符串s 转换成 long long数字 "2569875445664"—>2569875445664
stof(s): 把 数字字符串s 转换成 float数字 "256.314"—>256.314
transform(s.begin(),s.end(),s.begin();::tolower);//字符串全部转小写transform(s.begin(),s.end(),s.begin();::toupper);//字符串全部转大写
ASCII码对照表,ASCII码一览表(非常详细) - C语言中文网