作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要一个函数来为我提供从字母字符中转义的特殊字符。它仅在有意义时适用:'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/
我在 Java 中遇到异常处理问题,这是我的代码。当我尝试运行此行时出现编译器错误:throw new MojException("Bledne dane");。错误是: exception MojE
我刚刚开始学习asp.net。在你们的支持下,我希望我能从这个论坛学到更多东西。 我的问题是, 我在 asp.net 页面中有一个 TabContainer1,因为每个选项卡面板中有多个类似 (60)
我是一名优秀的程序员,十分优秀!