C++中字符串以及字符数组的输入以及操作(算法竞赛用)

本文介绍了C++中cin直接输入、gets和getline函数的区别,以及如何进行字符串查找、子串截取和删除操作。重点讲解了getline的用法和字符串处理的基本功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

字符数组:

        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个字符

 总结:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值