字符数组:
1.cin 直接输入
int n;
char str[1001];
for (int i=0;i<n;i++){
cin>>str[i];
}
注意:cin>>会自动过滤掉不可见字符(如空格 回车 tab等),空格结束
1.gets 输入
char s1[101];
gets(s1);
注意:gets 只能字符数组使用,回车结束
2.cin.getline()
三个参数,后面的可以省略。
只能输入字符数组
#include<iostream>
#include<string>
using namespace std;
int main()
{
char a[20];
cin.getline(a, 20,'a');
cout << a;
return 0;
}
字符串:
1.getline()
可以用字符串接收也可以字符数组接收
接收一个字符串,可以接收空格并输出,回车结束
#include<iostream>
#include<string>
using namespace std;
int main()
{
string s;
getline(cin,s);
cout << s;
return 0;
}
字符串基本操作:
字符串的查找
s.find(s1) //查找s中第一次出现s1的位置,并返回(包括0)
s.rfind(s1) //查找s中最后次出现s1的位置,并返回(包括0)
s.find_first_of(s1) //查找在s1中任意一个字符在s中第一次出现的位置,并返回(包括0)
s.find_last_of(s1) //查找在s1中任意一个字符在s中最后一次出现的位置,并返回(包括0)
s.fin_first_not_of(s1) //查找s中第一个不属于s1中的字符的位置,并返回(包括0)
s.fin_last_not_of(s1) //查找s中最后一个不属于s1中的字符的位置,并返回(包括0)
substr的用法,注意截取后原字符串还是有的,只不过是把他copy 过来了
s.substr(pos, n) //截取s中从pos开始(包括0)的n个字符的子串,并返回
#include<iostream>
#include<string>
using namespace std;
int main(){
string s1="mail time sh";
string s2=s1.substr(1,5);
cout<<"s2="<<s2<<endl;
cout<<"s1="<<s1<<endl;
return 0;
}
字符串删除的用法:
s.replace(pos, n, s1) //用s1替换s中从pos开始(包括0)的n个字符的子串
s.replace(pos, n, "") //删除pos开始的n个字符