如何解决如何解决“\”字符的问题?
在代码中,我将每个字符转换为 '(' 如果在整个字符串中只出现一次,或者如果它出现多次,则转换为 ')'。我通过了几乎所有的测试,除了输入“$$\”的测试。它给出了“缺少终止字符”的错误。我看到这个问题是 '\' 字符。如果我添加第二个 '\' 很好,但是有没有快速修复它的方法,或者我应该以某种方式将指针的大小加 1,然后添加第二个 '\'?
附言输入是固定的。我无法改变它。
char text[] = "$$\";
char *res = malloc(strlen(text));
int counter = 0;
for(int i = 0; i < strlen(text); i++) {
for(int j = 0; j < strlen(text); j++) {
if( tolower(text[i]) == tolower(text[j]) ) {
counter++;
}
}
if(counter == 1) {
res[i] = '(';
} else {
res[i] = ')';
}
printf("%c",res[i]);
counter = 0;
}
return 0;
解决方法
由于我们已经提出了三合字母,您也可以使用幻数代替(x86 解决方案):
#include <stdio.h>
int main(void)
{
char* text = (char*)&(int) <%6038564%>;
puts(text);
}
输出:
$$\
或者,如果您更喜欢神奇的数字 027022044
,那就选择那个。
(不是很认真的回答,但今天是星期五,所以...)
,没有什么可以逃脱转义符,即使是转义符 性格....
在 C 中,所有转义序列都由两个或多个字符组成
第一个是反斜杠 \
,称为转义字符。
剩下的字符决定了转义序列的解释。
\\
的转义序列等于 5C
ASCII 中的十六进制值,表示 Backslash
的字符。因此,为了使用反斜杠,您必须使用它两次。
您可以使用trigraph sequence
char text[] = "$$??/"; // { dollar-sign,dollar-sign,backslash,zero }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。