Способ преобразования массива char в объект NSString с еще одним символом в конце - PullRequest
0 голосов
/ 15 апреля 2019

код:

const char sbyte[] = {65, 66};

NSLog(@"byte:%c", 66);
NSLog(@"byte:%c", 67);
NSLog(@"byte:%s", sbyte);

NSString *string1 = [[NSString alloc] initWithCString:sbyte encoding:NSUTF8StringEncoding];
NSLog(@"string1: %@", string1);

NSString *string2 = [NSString stringWithFormat:@"%s", sbyte];
NSLog(@"string2: %@", string2);

печать:

 byte:B
 byte:C
 byte:ABb
 string1: ABb
 string2: ABb

Правильное приложение - «AB», но теперь это «ABb», еще один символ «b» ??

спасибо!

1 Ответ

3 голосов
/ 15 апреля 2019

Все строки C должны заканчиваться нулем:

const char sbyte[] = {65, 66, 0};

Они не содержат никакой информации о длине, поэтому ноль - это способ определения конца данных.

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