亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

搜索

c++中如何去除字符串首尾空格_c++字符串去除空格方法

冰火之心
發(fā)布: 2025-10-16 10:26:01
原創(chuàng)
752人瀏覽過
答案:常用方法是使用find_first_not_of和find_last_not_of定位非空格字符,再用substr截取有效部分。1. trim函數(shù)去除首尾空白字符,包括空格、制表符、換行等;2. trim_inplace原地修改字符串減少內(nèi)存分配;3. 若僅去除空格,可將字符集改為單個空格;4. 使用<algorithm>結合lambda更靈活,推薦第一種方法簡單高效。

c++中如何去除字符串首尾空格_c++字符串去除空格方法

在C++中去除字符串首尾空格,常用的方法是使用標準庫中的 find\_first\_not\_offind\_last\_not\_of 函數(shù)來定位第一個和最后一個非空格字符的位置,然后用 substr 提取中間部分。

1. 去除首尾空格(trim)

以下是一個通用的函數(shù),用于去除字符串開頭和結尾的空白字符(包括空格、制表符、換行等):

#include <string>
#include <iostream>
<p>std::string trim(const std::string& str) {
size_t start = str.find_first_not_of(" \t\n\r");
if (start == std::string::npos) return ""; // 全是空白或空字符串
size_t end = str.find_last_not_of(" \t\n\r");
return str.substr(start, end - start + 1);
}</p>
登錄后復制

說明:
- find\_first\_not\_of 找到第一個不是空白的字符位置。
- find\_last\_not\_of 找到最后一個不是空白的字符位置。
- 如果整個字符串都是空格,返回空字符串。
- 使用 substr(start, length) 截取有效部分。

2. 原地修改字符串(減少內(nèi)存分配)

如果想直接修改原字符串而不是返回新字符串,可以這樣做:

void trim_inplace(std::string& str) {
    size_t start = str.find_first_not_of(" \t\n\r");
    if (start == std::string::npos) {
        str.clear();
        return;
    }
    size_t end = str.find_last_not_of(" \t\n\r");
    str = str.substr(start, end - start + 1);
}
登錄后復制

3. 只去除空格(不包括其他空白字符)

如果只關心普通空格(' '),可以將字符集改為單個空格:

立即學習C++免費學習筆記(深入)”;

std::string trim_spaces_only(const std::string& str) {
    size_t start = str.find_first_not_of(' ');
    if (start == std::string::npos) return "";
    size_t end = str.find_last_not_of(' ');
    return str.substr(start, end - start + 1);
}
登錄后復制

4. 使用算法庫(更現(xiàn)代的方式)

也可以結合 <algorithm> 和 lambda 表達式實現(xiàn):

人聲去除
人聲去除

用強大的AI算法將聲音從音樂中分離出來

人聲去除23
查看詳情 人聲去除
#include <algorithm>
#include <cctype>
<p>std::string trim_with_algo(const std::string& str) {
auto start = std::find_if(str.begin(), str.end(), [](unsigned char c) {
return !std::isspace(c);
});
if (start == str.end()) return "";</p><pre class='brush:php;toolbar:false;'>auto end = std::find_if(str.rbegin(), str.rend(), [](unsigned char c) {
    return !std::isspace(c);
}).base();

return std::string(start, end);
登錄后復制

}

這種方式更靈活,可自定義判斷邏輯,比如是否忽略制表符等。

基本上就這些方法。推薦使用第一種基于 find\_first\_not\_of 的方式,簡單高效,適用于大多數(shù)場景。

以上就是c++++中如何去除字符串首尾空格_c++字符串去除空格方法的詳細內(nèi)容,更多請關注php中文網(wǎng)其它相關文章!

c++速學教程(入門到精通)
c++速學教程(入門到精通)

c++怎么學習?c++怎么入門?c++在哪學?c++怎么學才快?不用擔心,這里為大家提供了c++速學教程(入門到精通),有需要的小伙伴保存下載就能學習啦!

下載
來源:php中文網(wǎng)
本文內(nèi)容由網(wǎng)友自發(fā)貢獻,版權歸原作者所有,本站不承擔相應法律責任。如您發(fā)現(xiàn)有涉嫌抄襲侵權的內(nèi)容,請聯(lián)系admin@php.cn
最新問題
開源免費商場系統(tǒng)廣告
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
關于我們 免責申明 意見反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓,幫助PHP學習者快速成長!
關注服務號 技術交流群
PHP中文網(wǎng)訂閱號
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時隨地碎片化學習
PHP中文網(wǎng)抖音號
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號