2010-07-30 64 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,如果有元素,最后一个元素的索引是什么?

问候

相关问题