string

string 类头文件:       

#include <string>

string 是对字符串进行的操作  可以将string 看做一个char 型的数组或者是一个vector <char>

sting 声明:

sting a;                        //空string

string a[10];                  //字符串数组

string b("ABC“);           //变量b 的值为ABC

string常用操作:(部分操作需要定义头文件<algorithm>来使用) 

一、赋值类:

         a.assign (b)              a=b              //将a清空 再将b的值付给a

        a.assign("abc",1,2)   a=bc              //将bc赋值给a  abc是要给予的值(注意加"  "   否则编译器会认为abc是变量),相当于上式的b   1是指从1开始取(第一位是0 ,第二位是1 ........)     2是指取两位长度  (如果长度不够会补'\0')

        a.assign (5,'c')         a=ccccc              //将a 清空 再给变量 a  5个c

二、长度类:

        int len=a.size ();                  //求a的长度  返回a的长度

        len = a.length()                   //等价a.size ()  不过length只能求字符串的长度

        a.resize(10);                       //改变a的长度,使a得长度为10    同时长度超出10的部分清空   如果长度不足10  则补0

三、数值操作类:

        a.swap(b)                  交换       //将a与b的值就行交换   左右两边数据类型必须相同

        a.insert (1,"abc")     插入      //在a的第一位(从0开始算)前加上abc

        a.insert (1,"abcde",2,3)          //在a 的第一位前加上 abcde中的从第二位开始算的3位字符(cde)

        a.erase (2)                删除      // 从第二位(包括第二位)开始删除 a中的字符       

        a.erase (2,3)                          //将第二位(包括第二位)后的3位删除

        a.clear ()                    清空     //将a全部清空 

        a.replace(2, 4, "abcd");          //将a的第二位后4位替换成abcd 不足4位将自动补上

        reverse(a.begin(),a.end());     //翻转字符串

杭电oj 2087(剪花条)

#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
    string a, b, c;//a是总的字符    b是要匹配的字符
    while (cin >> a)
    {
        int ans = 0;
        if (a == "#") break;
        cin >> b;
        int len = a.size();
        for (int i = 0; i <= len - b.size(); i++)//因为要匹配长度所以不用计算到a.size ()哪一位
        {
            c.assign(a, i, b.size());//将a中的从第i位后的b.size ()位赋给c
            if (c == b)//如果字符相等
            {
                ans++;
                i += b.size () - 1;//要跳过b中的最后哪一位  因为for 里面i要+1,所以这里-1
            }
        }
        cout << ans<<endl;
    }
    return 0;
}

美好的一天从学习c结束 

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值