char数组:
1.strcpy(s1,s2) / strncpy(s1,s2,n)
:strcpy(s1,s2)将s2复制给s1;strncpy(s1,s2,n)将s2的前n个复制给s1
#include<bits/stdc++.h>
using namespace std;
int main(){
char a[10]="TddTdd!";
char b[10];
char c[10];
strcpy(b,a);
cout<<b<<endl;
strncpy(c,a,3);
cout<<c<<endl;
return 0;
}
2.strlen(s1)
:获取长度带'\n'
3.strcmp(s1,s2) / strncmp(s1,s2,n)
:strcmp是比较两个字符串的大小,两个字符串相同时返回0,第一个字符串大于第二个字符串时返回一个正值,否则返回负值.strncmp比较的是前n个
#include<bits/stdc++.h>
using namespace std;
int main(){
char c[10]="abcbd";
char d[10]="abdfg";
cout<<strlen(c)<<endl;
// 返回长度带\n
cout<<strcmp(c,d)<<endl;
// strcmp是比较两个字符串的大小,两个字符串相同时返回0,
// 第一个字符串大于第二个字符串时返回一个正值,否则返回负值.
cout<<strncmp(c,d,2)<<endl;
// 返回的值与strcmp相同
return 0;
}
string字符串
1. size(),length(),substr(pos)
:size(),length()获取字符串长度,带'\n',substr(pos)复制从pos个到最后一个的字符串,substr(pos,num),复制从pos个开始共num个字符串。
#include<bits/stdc++.h>
using namespace std;
int main(){
string s="12345";
cout<<s.length()<<endl;
cout<<s.size()<<endl;
string tp=s.substr();
cout<<tp<<endl;
tp=s.substr(2);
cout<<tp<<endl;
tp=s.substr(2,2);
cout<<tp<<endl;
return 0;
}
2.insert(),erase(),clear(),reverse(s.begin(),s.end())
:insert(pos,s1)在pos位置插入s1字符串,insert(pos,num,c)在pos位置插入num个c字符串,clear()清空字符串,reverse逆序字符串
#include<bits/stdc++.h>
using namespace std;
int main() {
string s="123456";
s.insert(1,"##");
cout<<s<<endl;
s.insert(4,4,'%');
cout<<s<<endl;
s.erase(s.begin());
cout<<s<<endl;
reverse(s.begin(),s.end());
cout<<s<<endl;
return 0;
}
3.find(),rfind()
:s1.find(s2),s1中查询s2字符串返回位置,s1.find(s2,pos),从pos位开始查询,s1.rfind(s2)从后往前找
#include<bits/stdc++.h>
using namespace std;
int main(){
string s1="12345123";
cout<<s1.find("345")<<endl;
cout<<s1.find("123",3)<<endl;
cout<<s1.rfind("123")<<endl;
return 0;
}