我有一個字符串,我宣佈它作爲的char * cQuery追加字符串
char *cQuery = "My Name Is ";
,我要追加另一個字符串。在Objective-C中,我會說stringByAppendingString:newString
我有點生鏽,C在Objective-C類中使用。誰能幫我嗎?
感謝
我有一個字符串,我宣佈它作爲的char * cQuery追加字符串
char *cQuery = "My Name Is ";
,我要追加另一個字符串。在Objective-C中,我會說stringByAppendingString:newString
我有點生鏽,C在Objective-C類中使用。誰能幫我嗎?
感謝
您可以使用從string.h中的strcat方法,但必須注意的是,目標字符串必須有足夠的規模,以保持新組合的字符串。
char destination[100];
char *cQuery = "My Name Is ";
char *anotherStr = "Peter";
strcpy(destination, cQuery);
strcat(destination, anotherStr);
使用strcat
看到幫助here
我這樣做,我得到節目接收信號:「EXC_BAD_ACCESS」。 – 2011-01-05 19:56:14
@Cocoa Dev:你不能附加到字符串文字。 「我的名字是」是一個字符串文字,並存儲在只讀存儲器中。 – 2011-01-05 20:16:47
我會用snprintf。 (這是我最喜歡的功能之一!)
像這樣:
void add_it(const char *name)
{
char buffer[256];
const size_t buffer_len = sizeof(buffer);
snprintf(buffer, buffer_len, "My Name Is %s", name);
do_something(buffer);
}
通過聲明字符串像這樣,您聲明cQuery是一個常量字符串。
// You can change cQuery using strcat, snprintf etc.
char *cQuery = "My Name Is ";
// Error! Cannot do this.
// strcat(cQuery, "John");
如果你想cQuery要修改的,你需要創建一個字符數組有一個明確的大小,然後複製在內容開始到該字符串。
char cQuery[128];
// use snprintf or strcpy to initialize
strcpy(cQuery, "My name is ");
// now you can modify cQuery by calling strcat.
strcat(cQuery, "Funny Name");
這很好,但我們不知道字符串的大小。所以我們不能假設它的長度。 – 2011-01-07 14:30:39