помогите очень надо написать прогу на си
Дана строка, содержащая буквы и цифры. Превратите эту строку так, чтобы сначала в нем было расположено все цифры, а затем - все буквы заданной строки. например:
ad2e7b5 2756adeb
Дана строка, содержащая буквы и цифры. Превратите эту строку так, чтобы сначала в нем было расположено все цифры, а затем - все буквы заданной строки. например:
ad2e7b5 2756adeb
Здравствуйте.
Хотелось бы хоть раз увидеть и вашу попытку что-либо написать. Вы пытаетесь хоть что-нибудь делать самостоятельно?
Как бы то ни было, в данном случае можно воспользоваться простейшей пузырьковой сортировкой:
#include
#include
#include
main() {
int c, l, o;
char s[99];
printf("string? ");
fgets(s, 99, stdin);
l = strlen(s);
do {
o = 0;
for (c = 1; c < l; ++c) {
if ((!isdigit(s[c - 1]) && isdigit(s[c])) ||
(!isalnum(s[c - 1]) && isalnum(s[c]))) {
char t = s[c - 1];
s[c - 1] = s[c];
s[c] = t;
o = 1;
}
}
--l;
} while (o);
printf("result: %s", s);
}
Программа переносит цифры в начало, за ними идут буквы, а потом все остальные символы. Порядок следования в группах символов сохраняется.
используй функцию copy()
Перебираете символы, переносите буквы в одну строчку, цифры - в другую. Потом склеиваете.