错误的trim和正确的trim(C++)

解决VS Code C/C++扩展IntelliSense失效:TypeError: input.trim is not a function错误排查指南 在软件开发中,集成开发环境(IDE)的代码智能感知(IntelliSense)功能是提升编程效率的核心工具,它通过实时语法分析、代码补全错误检测来辅助开发者。其底层原理通常依赖于语言服务器协议(LSP),这是一个在后台独立运行的进程,负责解析代码结构并与编辑器前端通信。当配置数据在传递过程中出现类型不匹配时,例如预期为字符串的变量被赋予了数组或空值,就可能触发类似“TypeError: input.trim is not a function”的运行时错误,导致智能感知完全失效,严重影响开发体验。这类问题 阅读详情

trim函数用来去除一个字符串左右两边的空格和制表符

err例一–>一个错误的trim函数展示

string LaStrUtils::trim(const std::string& str)
{
    string ret;
    //find the first position of not start with space or '\t'
    string::size_type pos1 = str.find_first_not_of(" ");
    string::size_type pos2 = str.find_first_not_of('\t');
    string::size_type pos_begin = pos1>pos2?pos1:pos2;
    if(pos_begin == string::npos)
    {
         return str;
    }

    //find the last position of end with space or '\t'
    string::size_type pos3 = str.find_last_of(" ");
    string::size_type pos4 = str.find_last_of('\t');
    string::size_type pos_end = pos3<pos4?pos3:pos4;
    if(pos_end != string::npos)
    {
        ret = str.substr(pos_begin, pos_end - pos_begin);
    }
    ret = str.substr(pos_begin);
    return ret;
}

测试样例
这里写图片描述
测试结果
这里写图片描述
没有考虑space和’\t’的嵌套

err例二–>使用RE(正则表达式)重整代码

错误的trim函数

bool LAStrUtils::trim(const std::string& line, std::string& ret)
{
    regex_t pkg_line_regex;
    //char* pkg_line_pattern = "[ |\t]*([\\+|-][a-zA-Z0-9\\+-_ ]+)[ |\t]*";
    char* pkg_line_pattern = "[ |\t]*([a-zA-Z0-9\\+-_ ]+)[ |\t]*";
    if(regcomp(&pkg_line_regex, pkg_line_pattern, REG_EXTENDED))
    {
        regfree(&pkg_line_regex);
        return false;
    }

    regmatch_t match[2];
    if(regexec(&pkg_line_regex, line.c_str(), 2, match, 0))
    {
        return false;
    }

    ret.assign(line.c_str() + match[1].rm_so, match[1].rm_eo - match[1].rm_so);
    return true;
}

用” \t aa bb cc \t “测试,最终结果是aa
没有其他输出结果了!!

正确的trim函数

最终我选择老老实实用string类

string LaStrUtils::trim(const std::string& str)
{
    string ret;
    //find the first position of not start with space or '\t'
    string::size_type pos_begin = str.find_first_not_of(" \t");
    if(pos_begin == string::npos)
        return str;

    //find the last position of end with space or '\t'
    string::size_type pos_end = str.find_last_not_of(" \t");
    if(pos_end == string::npos)
        return str;

    ret = str.substr(pos_begin, pos_end-pos_begin);

    return ret;
}

达到了我要的目的,下图为测试样例以及测试结果,perfect!
这里写图片描述

这里写图片描述


大功告成!

别再让SSD短命了!聊聊Windows/Mac/Linux下的TRIM指令到底怎么开(附检查方法) 本文详细解析了TRIM指令在Windows、macOSLinux系统下的配置与优化方法,帮助用户有效延长SSD寿命并提升性能。通过对比不同操作系统的TRIM实现差异,提供具体命令测试数据,指导用户正确启用验证TRIM功能,避免写入放大效应导致的SSD性能下降。 阅读详情

相关推荐

C++实现Trim函数功能(附完整源码)

C++实现Trim函数功能(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 839

C++实现Trim函数功能(附带源码)

C++实现Trim函数功能(附带源码)

欢迎来到我的博客!这里是一个专注于计算机技术的分享平台,涵盖编程开发、算法研究、系统架构、软件工程等多个领域。无论你是初学者还是资深开发者,都能在这里找到有价值的内容。 2286

C++中使用STL写的trim方法处理中文失败的问题以及解决方案

碰到的问题:今天使用自己写的trim方法处理中文的时候在isspace这里断掉了,原因呢,是中文字符被转类型转来转去结果变成无限大数值,结果导致的断言发生,具体是怎么样的,看下面的参考资料吧。解决办法解决办法很简单,那就是自己重写isspace这个方法了,以下便是代码: intmy_isspace(intch) { return(uns...

weixin_33971130的博客 522

CString中 format、trimLefttrimright、trim FindOneOf用法

1.format 可以帮助各种类型转换成CString. a. int 转 CString   CString str;   int number = 4;   str.Format(_T("%d"),number); b. double 转 CString   CString str;   double num = 1.46;   str.Format(_T("%lf"),...

weixin_30836759的博客 537

trim 不是可以识别的 内置函数名称。_TRIM除了去头去尾,还能做点什么

=TRIM(text)TRIM函数可以移除文本中的多余空格,除了单词之间正常的1个空格外,其余的空格将全部去除。来看一个例子:TRIM函数对于存在,但看不见的空格,往往在使用VLOOKUP、MATCH时结果会出错,造成找不到的假象。使用TRIM后,就可以轻松将他们一一找出来。比如:在使用MATCH时,出错了。公式在C9中=MATCH(B7,B3:B5,0)原因是:B7内的bcd前后,各有3个空格,...

weixin_39621870的博客 1334

数据库trim函数_使用TRIMSUBSTITUTE清除Excel数据

数据库trim函数 使用TRIMSUBSTITUTE清除Excel数据 (Clean Excel Data With TRIM and SUBSTITUTE) You have two Excel lists, and you’re trying to find the items that are in both lists. You know there are matching items...

culiao2169的博客 1765

c语言strTrimed函数用法介绍,TRIM函数

TRIM函数】的更多相关文章三个Trim函数简介 函数原型 function Trim(const S: string): string; 将字符串前后的空白及控制字元清掉. 注意Trim函数只能清掉字符串前后的空格及控制字元,不能清除字符串中间的空格 函数原型 function TrimLeft(const S: string): string; 将字符串左边的空白及控制字元清掉. 函数原型 ...

weixin_34268604的博客 1084

matlab里trim函数,matlab 中trim函数总出现Index exceeds matrix dimensions,求大神帮忙解决...

运行一个trim函数,可是总是错误Index exceeds matrix dimensions.Error in trim>trim_alg (line 164)gg=[x(ix)-x0(ix);y(iy)-y0(iy);u(iu)-u0(iu)];Error in trim (line 84)[x,u,y,dx,options]=trim_alg(fcn,varargin{:});不知道...

weixin_36177719的博客 1875

c语言trim库函数用法,c语言对字符串实现高效trim函数

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息本声明。否则将追究法律责任。http://sharep.blog.51cto.com/539048/296512好久没写东西了。最近在做一个unix下的网络服务器项目,用c写的,其中有个地方需要用到c++中的trim()函数,c中没有。我在unix论坛上找了几个帖子,对我启发挺大,但好像性能没有达到最优,于是自己...

weixin_39622178的博客 1145

trim函数 php,[PHP源码阅读]trim、rtrim、ltrim函数

trim系列函数是用于去除字符串中首尾的空格或其他字符。ltrim函数只去除掉字符串首部的字符,rtrim函数只去除字符串尾部的字符。我在github有对PHP源码更详细的注解。感兴趣的可以围观一下,给个star。PHP5.4源码注解。可以通过commit记录查看已添加的注解。trimstring trim ( string $str [, string $character_mask = " \...

weixin_42621217的博客 343

百度先生——Trim函数用法

<br />百度先生:Trim函数的用法:Trim()删除字符串头部及尾部出现的空格,删除的过程为从外到内,直到碰到一个非空格的字符为止,所以不管前后有多少格连续的空格都会被删除。如果带上字符型数组的参数,则是删除字符型数组中出现的任意字符。如TRIM("abcd",ToCharArray())就是删除字符串头部及尾部出现的a或b或c或d字符,删除过程知道碰到一个既不是a也不是b不是c不是d的字符才结束删除。<br />一般TRIM函数用法:<br />  Trim() 功能删除字符串首部尾部的空格。语法

Run Away 2508

OCP-1Z0-051 第79题 TRIM,REPLACE,LOWER函数

一、原题 View the Exhibit and examine the structure of the CUSTOMERS table. In the CUSTOMERS table, the CUST_LAST_NAME column contains the values 'Anderson' and 'Ausson'. You issue the following query:

Oracle 5919

C艹——C#中Trim()、TrimStart()、TrimEnd()的用法

C#中Trim()、TrimStart()、TrimEnd()的用法:     这三个方法用于删除字符串头尾出现的某些字符。Trim()删除字符串头部及尾部出现的空格,删除的过程为从外到内,直到碰到一个非空格的字符为止,所以不管前后有多少个连续的空格都会被删除掉。TrimStart()只删除字符串的头部的空格。TrimEnd()只删除字符串尾部的空格。       如果这三个函数带上字符型数组的...

weixin_43088769的博客 209

进行数据清洗_Excel办公技巧:如何运用CLEAN函数TRIM函数进行数据清洗?

在工作中,如果表格数据不规范,我们进行查找匹配、公式计算时就容易出现错误,这时我们要先对数据进行清洗。下面我们来学习一下常用的数据清洗函数CLEAN函数TRIM函数。CLEAN函数语法结构: CLEAN(text)参数text为需要从中删除非打印字符的工作表信息。CLEAN函数可以删除文本中含有的当前操作系统无法打印的字符,包括换行符。TRIM函数语法结构:TRIM(text)参数text为需要...

weixin_39846378的博客 2740

c语言strTrimed函数用法介绍,c语言对字符串实现高效trim函数

好久没写东西了。最近在做一个unix下的网络服务器项目,用c写的,其中有个地方需要用到c++中的trim()函数,c中没有。我在unix论坛上找了几个帖子,对我启发挺大,但好像性能没有达到最优,于是自己又写了个。源程序代码如下:char * trim(char *str){char *str_last,*str_cur;if(str==NULL)return;for(;*str==0x20 || ...

weixin_28923455的博客 428

关于trim函数

功能删除字符串首部尾部的空格。   语法Trim ( string )   参数string:string类型,指定要删除首部尾部空格的字符串返回值String。函数执行成功时返回删除了string字符串首部尾部空格的字符串,发生错误时返回空字符串("")。 如果参数值为null时,会抛出空指针异常。     用C实现该函数的功能 方法一:  char* fastt

tianmo2010的专栏 2903

PHP+trim乱码,PHP 源码探秘 - 为什么 trim 会导致乱码

运行以下代码:$tag = "互联网产品、";$text = rtrim($tag, "、");print_r($text);我们可能以为会得到的结果是互联网产品,实际结果是互联网产�。为什么会这样呢?科普比如$str = "abcd";print_r(strlen($str)."\n"); // 4print_r(mb_strlen($str)."\n"); // 4$str = "周梦康";p...

weixin_31995251的博客 89
上一篇: C语言正则表达式详解 regcomp() regexec() regfree()详解
下一篇: namespace的使用浅谈
逐鹿之城
博客等级 码龄11年 240粉丝 178原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值