c语言 - 如何解决''字符的问题?



在代码中,我将每个字符转换为'('如果在整个字符串中只出现一次,或者')',如果它出现不止一次。我通过了几乎所有的测试,除了输入&;$$&;的测试。它给出了"缺少终止字符"。错误。我看到问题是''字符。如果我添加第二个'',这是好的,但有没有一个快速的方法来修复它,或者我应该以某种方式添加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,那就选择那个。

(不是很严肃的回答,但是今天是星期五,所以…)

可以使用三字符序列

char text[] = "$$??/"; // { dollar-sign, dollar-sign, backslash, zero }

没有什么可以从转义字符中转义,即使是转义字符字符…

在C语言中,所有转义序列由两个或多个字符组成

第一个是反斜杠,,称为转义字符。

其余字符决定转义序列的解释。

\的转义序列等于5C十六进制ascii值,表示Backslash的字符。因此,为了使用反斜杠,必须使用两次。

相关内容

  • 没有找到相关文章

最新更新