/ / Най-добрият начин за разделяне на цели числа в Цел C - цел-c, цяло число

Най-добрият начин да разделите цели числа в Цел С - цел-c, цяло число

Ако имам това:

int toSplit = 208;

Какъв е най-добрият начин да го разделите така че да получа:

2
0
8

Отговори:

3 за отговор № 1

Методът ще бъде такъв

- (NSMutableArray *) toCharArray : (NSString *) str
{

NSMutableArray *characters = [[NSMutableArray alloc] initWithCapacity:[str length]];
for (int i=0; i < [str length]; i++)
{
NSString *ichar  = [NSString stringWithFormat:@"%c", [str characterAtIndex:i]];
[characters addObject:ichar];
}

return characters;
}

2 за отговор № 2
do {
int digit = toSplit % 10;
toSplit /= 10;

printf(@"%i", digit);

} while (toSplit > 0);

Надявам се, че това не е домашна работа.

EDIT: това е назад, затова не е валиден отговор ... Оставете го тук, защото той все още може да бъде полезен за другите.


0 за отговор № 3

Сортирайте го в низ и го издърпайте. Така че:

int toSplit = 208;

NSString *string = [NSString stringWithFormat: @"%i", toSplit];

NSMutableString *splitApartString = [[NSMutableString alloc] init];

for (int i = 0; i < [string length]; i++) {

NSString *substring = [string substringFromIndex: i];

[splitApartString appendFormat: @"%@n", substring];
}

NSLog(@"%@", splitApartString); //YAY!

Така че това, което прави това, поставя този int в низ, разделя го на разстояние, след това се повтаря през всеки знак и получава низ от този характер. След това той прибавя този подчинен към НОВ низ.

Друга алтернатива е, вместо да получите подчинение, просто да получите знака и да използвате %c оператор. Също така, ако разгледате този код, ще видите този изход:

> 2

> 0

> 8

> // extra space here

Можете просто да добавите условие, за да проверите дали i е дължината на низа - 1 и не добавяте интервал или просто можете да премахнете последния знак!


0 за отговор № 4

Не съм запознат със синтаксиса на Цел-С, но нещо като:

void split(int toSplit)
{
if (!toSplit)
{
return;
}
split(toSplit / 10);
int digit = toSplit % 10;
printf(@"%i", digit);
}