我正在尝试在运行时对Objective C字符串进行字符串化。
是否可以使用字符串化运算符来执行此操作?我意识到它是一个预处理的宏,但是我可以将它与一个返回char *的函数结合起来吗?
我想做的就是......
#define strthis(x) #x
char *itsstringized = strthis([@"my string" UTF8String]);
printf("%s", itsstringized);
结果:
"my string"
不
my string
答案 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!"));