簡體   English   中英

NSString轉換為Objective-c中的char []

[英]NSString to char[] in Objective-c

我必須將NSString轉換為以null結尾的char []。

我這樣做的方式是這樣的:

NSString *regC = @"1234"    
char REG[[regC length] +1];
BOOL result = [regC getCString:REG maxLength:32 encoding:NSUTF8StringEncoding];

我不知道這是否是正確的方法。

REG必須為5個字符的數組,最后一個為null /

謝謝。

char *REG = [@"test" UTF8String];

除非使用malloc / free,否則無法在運行時分配char []的長度。 但是通過上述方法,您將不需要管理內存。

只要您在NSString中使用ASCII字符,這就是正確的轉換方法。 它們以UTF-8編碼形式表示為單字節字符。 如果使用一些非ASCII字符,則應使REG更大。

更新:更多:您應該將實際緩沖區大小放入“ maxLength:”參數中,以避免緩沖區溢出。 不是32,而是[regC長度] +1。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM