Как я могу добавить садган [1] к моей тестовой строке? - PullRequest
1 голос
/ 31 июля 2010

У меня есть const char * sadgan [4] = {"yeksad", "devist", "sisad", "chaharsad", "pansad"};Как я могу добавить садгана [1] для проверки в цели c?

    NSString *myString =@"";
    NSString *test = [myString stringByAppendingString:sadgan[1]];
    NSLog(@"% ? " ,test);

Я хочу написать ексад о девист о сисад о ...

Ответы [ 6 ]

1 голос
/ 31 июля 2010

char* и NSString не конвертируются друг в друга автоматически.Если вы используете Objective-C, используйте NSString, если какая-то библиотека, которую вы используете, не заставляет вас иначе."abc" - это char*, @"abc" - это NSString.

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

.

Кстати, какой язык вы использовали?dev для 2, chahar для 4 и pan для 5 звучат как индоевропейский язык ...

1 голос
/ 31 июля 2010

Преобразование С-Стинга в строку NSS:

NSString *myNSString = [NSString stringWithUTF8String:cString];

, а затем добавить.

0 голосов
/ 02 августа 2010

@ аден: «почему ?? в массиве c ранга is (0 .. 4) = 5 ”- похоже, у вас должно быть сначала несколько уроков по Си? <em>something</em> array[<em>value</em>]; резервирует место в памяти. Пространство для значения «кое-что». Вы просто знаете, индекс начинается с 0. Так что попробуйте: если первый элемент называется 0, каков индекс для последнего, если есть значение элементов?

Привет

0 голосов
/ 31 июля 2010

@ aden: Конечно, данные массива помещаются в кучу. Это делается обычным способом, так что вы можете получить к нему доступ. Но это небезопасно: это зависит от того, как компилятор на самом деле обрабатывает такие вещи. И: что делать, если массив не находится в куче? Может в стеке? Да, в большинстве случаев это будет плохой идеей, но это все еще идея.

Действительно плохая идея - это думать, что «это просто работает, так что не беспокойтесь об этом» Не делайте ненужных предположений.

Привет

0 голосов
/ 31 июля 2010

@ объективное Заинтересованное лицо:

в с:

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

в target_c: `

 NSString *mystring=@"";

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

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

 NSLog(@"%@",test);     //output =five
0 голосов
/ 31 июля 2010

Не по теме для Objective-C, но по теме для C:

* sadgan [4] = {"ексад", "девист", "сисад", "чахарсад", "пансад"};

Я не знаю этого языка, но я не могу помочь: 1: йексад, 2: девист, 3: сисад, 4: чахарсад, 5: пансад Как вы думаете, какой из них будет отброшен массивом, способным содержать 4 значения?

Привет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...