2010-07-30 61 views

回答

1

char*NSString不會自動互相轉換。如果您使用Objective-C,請使用NSString,除非您使用某個庫,否則會強制您。​​是char*,@"abc"NSString

NSArray* sagdan=[NSArray arrayWithObjects:@"yeksad",@"devist",@"sisad",@"chaharsad",@"pansad",nil]; 
NSString *test = [myString stringByAppendingString:[sagdan objectAtIndex:4]]; 

將完成這項工作。

順便說一下,您使用的語言是什麼?開發2,察哈爾4和泛5聽起來像一個印歐語...

+0

謝謝你,我的目標C初學者,這是我的第一個源代碼:) 它的波斯語。 yeksad = 100 devist = 200,... yek = 1 do = 2 se = 3 chahar = 4 ... – aden 2010-07-30 23:32:30

+0

現在我知道波斯的前幾位了,謝謝:) – Yuji 2010-07-30 23:37:10

1

轉換爲C蜇到一個NSString:

NSString *myNSString = [NSString stringWithUTF8String:cString]; 

然後追加。

0

題外話了Objective-C的,但是,話題爲C:

* sadgan [4] = {」 yeksad「,」devist「,」sisad「,」chaharsad「,」pansad「};

我不知道這種語言,但我忍不住:1:yeksad,2:devist,3:sisad,4:chaharsad,5:pansad。你認爲哪一個會被陣列所淹沒,能夠保持4個值?

問候

0

@目標利害關係人:

在C

在objective_c
const char * array_1[4]={"one","two","tree","four","five"}; 
    printf("%s",array_1[4]) //output= five 

:`

NSString *[email protected]""; 

NSArray* array_1=[NSArray arrayWithObjects:@"one",@"two",@"tree",@"four",@"five",nil]; 

NSString *test = [mystring stringByAppendingString:[array_1 objectAtIndex:4]]; 

NSLog(@"%@",test);  //output =five 
+0

你的聲明const char * array_1 [4]'是錯誤的。它應該是'[5]'。 – 2010-07-31 19:36:40

+0

爲什麼?在c數組範圍內是(0..4)= 5 – aden 2010-08-01 16:49:10

0

@aden:當然,陣列的數據被放置在堆。這是以通常的方式完成的,所以你可以使用它。但它不安全:它取決於方式,編譯器實際上正在處理這樣的事情。並且:如果數組不在堆中,該怎麼辦?也許在堆棧上?是的,在大多數情況下,這將是一個壞主意,但它仍然是一個想法。

一個真正糟糕的想法是思考「它只是在工作,所以不用擔心」。不要做出不必要的假設。

問候

0

@aden:「爲什麼?在C數組響起是(0..4)= 5「 - 看起來應該先在C中學幾節課? something array[value];正在保留內存空間。空間爲「某事」。您只需知道,索引從0開始。因此,請嘗試:如果第一個元素被稱爲0,如果有元素,最後一個元素的索引是什麼?

問候

相關問題