cpp零碎知识点小记

字符串读取方法记录

记录

个人小结:

  • 按整行读到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

posted @ 2024-08-17 22:55  ihuahua1415  阅读(25)  评论(0)    收藏  举报
*/