gpt4 book ai didi

c++ - trim 不是标准 c/c++ 库的一部分吗?

转载 作者:IT老高 更新时间:2023-10-28 22:16:08 26 4
gpt4 key购买 nike

是我还是 c 或 c++ 库中没有标准的修剪函数?有没有任何单一的功能可以作为修剪?如果没有,谁能告诉我为什么 trim 不是标准库的一部分? (我知道修剪正在增强)

我的修剪码是

std::string trim(const std::string &str)
{
size_t s = str.find_first_not_of(" \n\r\t");
size_t e = str.find_last_not_of (" \n\r\t");

if(( string::npos == s) || ( string::npos == e))
return "";
else
return str.substr(s, e-s+1);
}

test: cout << trim("\n\r\r\n\r\n text here\nwith return\n\r\r\n\r\n ");-编辑-我主要想知道为什么它不在标准库中,BobbyShaftoe 的答案很棒。 trim is not part of the standard c/c++ library?

最佳答案

不,您必须自己编写或使用其他库,如 Boost 等。

在 C++ 中,你可以这样做:

#include <string>

const std::string whiteSpaces( " \f\n\r\t\v" );


void trimRight( std::string& str,
const std::string& trimChars = whiteSpaces )
{
std::string::size_type pos = str.find_last_not_of( trimChars );
str.erase( pos + 1 );
}


void trimLeft( std::string& str,
const std::string& trimChars = whiteSpaces )
{
std::string::size_type pos = str.find_first_not_of( trimChars );
str.erase( 0, pos );
}


void trim( std::string& str, const std::string& trimChars = whiteSpaces )
{
trimRight( str, trimChars );
trimLeft( str, trimChars );
}

关于c++ - trim 不是标准 c/c++ 库的一部分吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/479080/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com