0

我正在尝试在运行时对 Objective C 字符串进行字符串化。

是否可以使用字符串化运算符来执行此操作?我意识到这是一个预处理宏,但我可以将它与返回 char* 的函数结合起来吗?

这是我想做的是..

#define strthis(x) #x
char *itsstringized = strthis([@"my string" UTF8String]);
printf("%s", itsstringized);

结果:

"my string"

不是

my string

4

2 回答 2

1

你想要这样的东西吗?

将字符串传递给方法,它将返回用引号括起来的字符串。

-(NSString *)stringizedString(NSString *)str{
   return [NSString stringWithFormat:@"\"%@\"", str];
}
于 2012-11-26T16:45:22.410 回答
1

你一定可以!试试这个宏:

#define QUOTEIFY(input) @("\"" #input "\"")
#define QUOTEIFY_STRING(input) @("\"" input "\"")

用法:

NSLog(QUOTEIFY(Hello World!)); // notice I didn't quote what's inside the brackets.
// or, if you prefer:
NSLog(QUOTEIFY_STRING("Hello, World!"));
于 2012-11-26T16:47:53.163 回答