ZD
Zgtnz Dfdsfds
C++ Работа со строками. Динамические одномерные массивы.
Имеется строка, содержащая буквы и цифры. Преобразовать эту строку так, чтобы сначала в ней шли все цифры, а затем – все буквы исходной строки.
Имеется строка, содержащая буквы и цифры. Преобразовать эту строку так, чтобы сначала в ней шли все цифры, а затем – все буквы исходной строки.
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';