我正在尝试在运行时对 Objective C 字符串进行字符串化。
是否可以使用字符串化运算符来执行此操作?我意识到这是一个预处理宏,但我可以将它与返回 char* 的函数结合起来吗?
这是我想做的是..
#define strthis(x) #x
char *itsstringized = strthis([@"my string" UTF8String]);
printf("%s", itsstringized);
结果:
"my string"
不是
my string
我正在尝试在运行时对 Objective C 字符串进行字符串化。
是否可以使用字符串化运算符来执行此操作?我意识到这是一个预处理宏,但我可以将它与返回 char* 的函数结合起来吗?
这是我想做的是..
#define strthis(x) #x
char *itsstringized = strthis([@"my string" UTF8String]);
printf("%s", itsstringized);
结果:
"my string"
不是
my string
你想要这样的东西吗?
将字符串传递给方法,它将返回用引号括起来的字符串。
-(NSString *)stringizedString(NSString *)str{
return [NSString stringWithFormat:@"\"%@\"", str];
}
你一定可以!试试这个宏:
#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!"));