#include <stdlib.h>
void main()
{
const int size = 10;
//char st[size] = "2-3+4-3";
char st[size] = "-3b+2c+1";
char dest[size];
char *ptr = st;
while (*ptr != NULL)
{
int d = strtol(ptr, &ptr, 36);
if (d >= 0)
_itoa_s(d, dest, size, 36);
else
{
_itoa_s(abs(d), dest+1, size-1, 36);
dest[0] = '-';
}
printf("%s\n", dest);
}
}
Разделение строки на части
Привет. Есть проблемка. Вобщем нужно строку: char st[10] = "2-3+4-3" или -3b+2c+1, разделить на символы, т.е отделить числа со знаком, чтобы получилось вот так 2 -3 4 -3 или -3b 2c 1. Язык C. Функция strtok не подходит. Спасибо.
Цитата: koodeer
Вряд ли можно сделать короче :cool:
Зато можно сделать длиннее ;)
Например, любая опечатка в строке приводит к зацикливанию :rolleyes:
Для воспроизведения ошибки:
-3b+(2c+1
-3b-+2c+1
P.S. но если строка валидная - красивое решение!
koodeer, спасибо работает. Вот только на Borland C не компилится, ругается на функции _itoa_s. Если ли аналогни в Borland C?