字符串读取方法记录
记录
个人小结:
- 按整行读到string ,推荐用 方法2 getline(cin, string)
- 按整行读到char[] ,推荐用 方法4 cin.getline(cin, char*)
- 读单个字符串,推荐用 cin>>
啰嗦解释如下:
按行读
方法2 getline(cin, string) 和 方法4 cin.getline(cin, char) 会读到回车为止,并且会把回车丢弃。
方法3 cin.get(cin, char) 不丢弃回车
其他: fgets 会多读入一个回车,比较麻烦
读字符串
cin >> char 会自动忽略起始的空格/回车/tab,结尾如果有回车空格,不会丢弃。 ” aa” => “aa”
scanf(“%s”, char) 同上
cin >> string 同上
str.insert(i,s)使用记录
str.insert(i,s);//在原串下标为i的字符串str前插入字符串s
字符串中 find和rfind的使用
使用find函数查找当前字符在字符串中的第一次出现的位置。
使用rfind函数查找当前字符在字符串中的最后一次出现的位置。
题目链接
使用示例
#include<iostream>
#include<cstdio>
#include<string>
using namespace std;
int main()
{
string A;
bool s=0;
while(getline(cin,A))
{
for(int i=0;i<A.size();i++)
{
if(A.find(A[i])==A.rfind(A[i]))
{
cout<<A[i]<<endl;
s=1;
break;
}
}
}
if(s==0)
cout<<"no"<<endl;
return 0;
}
string::npos
npos可以表示string的结束位子,是string::type_size 类型的,也就是find()返回的类型。find函数在找不到指定值得情况下会返回string::npos
标签:知识点,string,cin,char,字符串,cpp,getline,回车,小记 From: https://www.cnblogs.com/hnu-hua/p/18365136