qq_54941014 2023-01-25 21:45 采纳率: 100%
浏览 50
已结题

关于C++汉英混合的字符串寻找指定子字符串和截取

C++汉英混合的字符串截取

目前来看s.find(str)返回值都是-1,用s.substr(idx)从八位以后截取就会报错

#include<iostream>
#include<string>
#include<regex>
#include<cstdlib>
#include< locale>
#include <codecvt>
using namespace std;
void cut(wstring a) {
    wstring next;
    wstring h = L"荣耀";
    int head,end;
    wregex regexstr(L"^0.*");   //输入多行字符串处理,直到输入一个以0开头的字符串结束。
    wsmatch resault;
    if (regex_match(a, resault, regexstr)) cout<<"back"<<endl;
    else {
        getline(wcin, next);
        cut(next);        //用递归实现处理完一并输出
    }
    head = a.find(h);   //返回值恒为-1
    if(head>0)
        wcout<<a.substr(head)<<endl;     //只有把head改成具体值(<=8)可以截取
}
int main()
{
    wstring a;
    getline(wcin,a);
    cut(a);
}

img

刚学c++,一开始string处理不了汉字改为wstring,想先获取指定字符串位置再截取,但是s.find和s.substr现在都有问题,求拯救!!

img

  • 写回答

2条回答 默认 最新

  • 关注
    #include <iostream>
    #include <locale>
    #include <regex>
    #include <string>
    
    using namespace std;
    
    void cut(wstring a)
    {
        wstring next;
        wstring const h = L"荣耀";
        size_t head;
        wregex const regexstr(
            L"^0.*"); // 输入多行字符串处理,直到输入一个以0开头的字符串结束。
        wsmatch resault;
        if (regex_match(a, resault, regexstr))
        {
            cout << "back" << endl;
        }
        else
        {
            getline(wcin, next);
            cut(next); // 用递归实现处理完一并输出
        }
        head = a.find(h); // 返回值恒为-1
        if (head != -1)
        {
            wcout << a.substr(head) << endl; // 只有把head改成具体值(<=8)可以截取
        }
    }
    
    auto main() -> int
    {
        wstring a;
        wcin.imbue(locale(""));
        wcout.imbue(locale(""));
        getline(wcin, a);
        cut(a);
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 2月2日
  • 已采纳回答 1月25日
  • 创建了问题 1月25日

悬赏问题

  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度