0

我想返回一个以空字符结尾的 char* ,其中包含一个退格字符而不malloc'ing it。具体来说,我希望字符串是 {backspace-character, space-character, backspace-character, null-character} 而没有别的。

对于“常规”字符串,我知道我可以说

char* s = "regular";
return s;

然后s可以安全地传递给其他函数,因为它指向 string regular,它是在堆栈外部声明的全局变量。但是,我能想到用退格键完成此操作的唯一方法是

char* s = {0x08, ' ', 0x08, '\0'};
return s;

但这似乎有问题,因为现在我声明的数组在堆栈上,并且在调用函数中无效。同样,我不想处理malloc这个字符串,因为我不想在free以后处理它。我能做些什么?

4

3 回答 3

3

您可以在字符串文字中包含退格,\b例如"\b \b"

于 2013-03-05T06:36:09.113 回答
1
char*   s = "\b \b";

这是你想要的 ?

于 2013-03-05T06:36:04.073 回答
0

除了根据其他答案使用字符串常量外,您还可以

static char s[] = {0x08, ' ', '0x08, '\0'};
return s;
于 2013-03-05T08:41:53.347 回答