使用C风格转义序列转义字符串
使用C风格转义序列转义字符串 转义'src'字符串,使用C风格转义序列(https://en.cppreference.com/w/cpp/language/escape), 其中中常用转义符(如 '
', '\r', '\t', '', '\f', '\v', '"', '\')使用单字母形式 将其他不可打印/非空白字节转义为八进制序列(例如"\377")
- 参数
-
- 返回
- std::string 转义后的字符串
std::string s = "foo\rbar\tbaz\010\011\012\013\014\x0d\n"; std::string escaped_s = aCEscape(s); EXPECT_EQ(escaped_s, "foo\\rbar\\tbaz\\010\\t\\n\\013\\014\\r\\n");
#pragma once
#include "AstGlobal.h"
#include <string>
AST_NAMESPACE_BEGIN
namespace escape
{
constexpr char kReset[] = "\033[0m";
constexpr char kBold[] = "\033[1m";
constexpr char kItalic[] = "\033[3m";
constexpr char kUnderline[] = "\033[4m";
constexpr char kStrike[] = "\033[9m";
constexpr char kBlue[] = "\033[34m";
constexpr char kCyan[] = "\033[36m";
constexpr char kDim[] = "\033[2m";
constexpr char kYellow[] = "\033[33m";
constexpr char kBrightWhite[] = "\033[97m";
constexpr char kBrightCyan[] = "\033[96m";
}
AST_UTIL_API std::string aCUnescape(StringView source);
AST_UTIL_API std::string aCEscape(StringView src);
AST_UTIL_API std::string aQuote(StringView src);
AST_UTIL_API std::string aUnquote(StringView src);
AST_UTIL_API void aUnescapeXML(StringView& str, std::string& result);
AST_UTIL_API std::string aUnescapeXML(StringView src);
AST_NAMESPACE_END