在运行时对ObjectiveC字符串进行字符串化

时间:2012-11-26 14:53:33

标签: objective-c cocoa

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

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

我想做的就是......

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

结果:

"my string"

my string

2 个答案:

答案 0 :(得分:1)

你想要这样的东西吗?

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

-(NSString *)stringizedString(NSString *)str{
   return [NSString stringWithFormat:@"\"%@\"", str];
}

答案 1 :(得分: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!"));