获取退格到C char *

时间:2013-03-05 06:32:39

标签: c string unix char

我想返回一个以null结尾的char *,它包含一个退格字符,而不包含malloc。 具体来说,我希望字符串为{backspace-character,space-character,backspace-character,null-character},而不是别的。

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

char* s = "regular";
return s;

然后s可以安全传递给其他函数,因为它指向字符串regular,它是在堆栈外声明的全局。但是,我能想到用退格来实现这个目标的唯一方法就是

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

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

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

char*   s = "\b \b";

这就是你要找的东西吗?

答案 2 :(得分:0)

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

static char s[] = {0x08, ' ', '0x08, '\0'};
return s;