gpt4 book ai didi

连接两个字符以创建转义序列

转载 作者:太空宇宙 更新时间:2023-11-04 02:53:50 24 4
gpt4 key购买 nike

想法是尝试以“人类”方式创建转义序列。例如,我使用两个字符来创建'\n',即'\''n'
我在想的是 char array[3]={'\\','n','\0'};
所以我可以更改 'n' 字符并仍然将其用作转义序列。

当我 printf(array) 现在打印:

\n

我希望它转到下一行。

例如:
如果我想手动检查字母表中的每个字母在用作带循环的转义序列时的作用怎么办?

for(char='a';char<='z';char++) 
{
/* create escape sequence with that letter */
/* print that escape sequence and see what it does */
}

这不是作业,没有实际用途(至少现在还没有),只是一个理论问题,我无法在任何地方找到答案,也无法自己弄清楚。

最佳答案

转义序列表示一个单个字符,并在编译时 求值。您不能在运行时 将文字字符串解释为转义序列。例如 '\n' 是换行符(或换行符 - ASCII 中的 0x0A)

注意:

char array[3]={'\\','n','\0'};

相当于:

 char array[3] = "\\n" ;

因此,当您 printf(array) 时,它打印 \n 可能不足为奇 - 这就是您要求它执行的操作。

未定义的转义序列根本不会编译,所以你可以简单地:

char = '\a' ;
char = '\b' ;
... // etc.

并查看编译器在哪些行中犹豫不决。然而,这还不是全部,因为一些转义序列需要 操作数,例如 \x 本身没有意义,而 \xab 是由 0xab(十进制 171)表示的字符。其他人甚至不是字母。大多数与空白有关,它们的效果可能取决于执行平台的终端或控制台功能。因此,天真的调查可能不会产生您想要的结果,因为它没有考虑语言语义或平台功能。

所有受支持的转义序列实际上都已明确定义 - 除了可能与平台功能相关的惊喜外,您会发现很少有惊喜(例如,如果您的目标无法发出哔哔声,\a 将没有任何用处):

    \a      Beep    \b      Backspace    \f      Form-feed    \n      Newline    \r      Carriage return    \t      Horizontal tab    \v      Vertical tab    \\      Backslash    \'      Single quotation mark    \"      Double quotation mark    \0      ASCII 0x00 (null terminator)    \ooo    Octal representation    \xdd    Hexadecimal representation

关于连接两个字符以创建转义序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19477718/

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