2012-11-26 102 views
0

我想在運行時字符串化一個Objective C字符串。在運行時將ObjectiveC字符串字符串化

是否可以使用字符串化操作符來執行此操作?我意識到這是一個預處理的宏,但我可以將它與返回char *的函數結合起來嗎?

這是我想要做的是什麼..

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

結果:

"my string"

my string

+0

好心給什麼將是你的輸入?你想如何提供意見,以及你希望如何獲得價值? –

+0

請參閱示例(非工作)代碼。 – estobbart

回答

1

你想是這樣的?

將一個字符串傳遞給一個方法,它將返回用引號括起來的字符串。

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

我希望能夠使用字符串的UTF8。我將使用.. - (const char *)進行修改。stringizedUTF8StringFromString:(NSString *)str {return [[NSString stringWithFormat:@「\」%@ \「」,str] UTF8String]; – estobbart

+0

肯定....你可以:) –

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!"));