ZD
Zgtnz Dfdsfds

C++ Работа со строками. Динамические одномерные массивы.

Имеется строка, содержащая буквы и цифры. Преобразовать эту строку так, чтобы сначала в ней шли все цифры, а затем – все буквы исходной строки.

Ni
Nikita

char *str;//наша строка
int left=0, right=strlen(str)-1;
while(left < right) {
while((left < right) && isdigit(str[ left]))++left;
while((left < right) && isalpha(str[ right]))--right;
char t=str[ left];
str[ left]=str[ right];
str[ right]=t;
}
//вуаля!

ну или

char *str, *str1;//наша строка, временная такой же длины
strcpy(str1,str);
int last=0;

for(int i=0; i < strlen(str); ++i )
if( isdigit(str [ i ]))str1[ last++ ]=str [ i];
for(int i=0; i < strlen(str); ++i )
if( isalpha(str [ i ]))str1[ last++ ]=str [ i];
str1[ last]='\0';

Похожие вопросы
Удаление элементов из одномерного массива. C++
Работа с одномерными массивами в паскале
Обработка одномерного массива.
Паскаль. Удалить третий элемент одномерного массива. Удалить третий элемент одномерного массива
Вопрос по Visual C# и динамических массивах.
c++ работа со строками массива
Одномерные массивы (с++)
Указатели динамического массива, функции, c++
Динамические массивы c++
C++. Как можно транспонировать матрицу NxM из одномерного массива?