С вашим кодом я вижу три проблемы:
1.
Когда вы делаете
lettreChiffre[1]=(char) j;
запомните j
- это число от 1
до 8
, поэтому вы получаете символ ASCII, значение которого j
, а не символ 1...8
. Вы должны использовать
lettreChiffre[1]= '0' + j;
2.
lettreChiffre
- это массив char
длины 2, что означает, что в нем нет места для нулевого символа терминала. Это может сработать, но может дать вам бред. Вместо этого вы должны объявить
char lettreChiffre[3];
lettreChiffre[2] = '\0';
3.
Вы пытаетесь использовать printf
, чтобы напечатать NSString
, чего он не может сделать. Либо использовать
NSLog(@"adresse finale: %@", mynsstring)
или преобразовать NSString
обратно в C-строку:
printf("adresse finale: %s", [mynsstring UTF8String]);
Кроме того, как заметил @dreamlax, вам не нужен цикл. Я предположил, что вы занимались чем-то другим, и столкнулся с этой проблемой, поэтому мы не видим полного кода. Но если это действительно весь ваш код, тогда вы можете просто удалить цикл, как предложено @dreamlax.