gpt4 book ai didi

c++ - 如何将字母字符转换为相应的转义特殊字符

转载 作者:行者123 更新时间:2023-11-28 06:24:58 27 4
gpt4 key购买 nike

我需要一个函数来为我提供从字母字符中转义的特殊字符。它仅在有意义时适用:'t'、'n'、'r'、'b'、'f'、'v'。

现在,这是我的实现:

typedef struct SpecialCharacter
{
SpecialCharacter( char letter, char special )
{
m_letter = letter;
m_special = special;
}

char m_letter;
char m_special;
} SpecialCharacter;

typedef std::vector<SpecialCharacter> SpecialCharacters;

static const SpecialCharacters& GetSpecialCharacters()
{
static SpecialCharacters characters;
if ( characters.empty() )
{
characters.push_back( SpecialCharacter( 'b', '\b' ) );
characters.push_back( SpecialCharacter( 'f', '\f' ) );
characters.push_back( SpecialCharacter( 'n', '\n' ) );
characters.push_back( SpecialCharacter( 'r', '\r' ) );
characters.push_back( SpecialCharacter( 't', '\t' ) );
characters.push_back( SpecialCharacter( 'v', '\v' ) );
}
return characters;
}

static bool getEscaped( char letter, char& escaped )
{
for ( SpecialCharacters::const_iterator iter = GetSpecialCharacters().begin();
iter != GetSpecialCharacters().end();
++iter )
{
if ( letter == iter->m_letter)
{
escaped = iter->m_special;
return true;
}
}
return false;
}

我不喜欢向字符 vector 添加元素的方式:

characters.push_back( SpecialCharacter( 'b', '\b' ) );

有什么办法可以做到:

characters.push_back( SpecialCharacter( 'b' ) );

然后有类似的东西:

SpecialCharacter( char letter )
{
m_letter = letter;
m_special = '\' + letter; // does not work, of course!
}

我想要一种将“\”和“n”合并到“\n”中的方法,或者通过任何不同的方式从“n”中获取“\n”...

编辑:case 语句是我在将代码移动到结构 vector 之前最初拥有的语句(因为我需要一个函数来解决问题)。所以这不是解决我的问题的好方法。我想在没有任何类型的“查找表”的情况下将 'n' 转换为 '\n'

最佳答案

n\n 是完全不同的字符。它们彼此之间没有任何关系。 \n 只是一个助记符。没有公式。

关于c++ - 如何将字母字符转换为相应的转义特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28694007/

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