Имеется строка содержащая буквы и цифры .Преобразуйте эту строку так, что бы в ней сначала шли все цифры исходной строки, а потом все буквы исходной строки, но в обратном порядке.
Допустимые символы - цифры, прописные и строчные латинские буквы.
Пример :
Исходная строка результат
ad2e57b6 2576beda
Стрижем. Kozloff. Недопустимый символ - "."
Другие языки программирования и технологии
Помогите Написать програмку на си ) Плиииз)
Держите:
$ cat trah.c
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
struct node {
int data;
struct node *next;
} *digits = NULL, *letters = NULL;
int main() {
int c;
struct node *p, *q;
while ((c = getchar()) != EOF) {
if (isdigit(c)) {
p = (struct node *)malloc(sizeof *digits);
if (p) {
p->data = c;
p->next = NULL;
if (!digits)
digits = p;
else {
for (q = digits; q && q->next; q = q->next);
q->next = p;
}
}
else {
printf("Error add digit.\n");
exit(1);
}
}
else if (isalpha(c)) {
p = (struct node *)malloc(sizeof *letters);
if (p) {
p->data = c;
p->next = letters;
letters = p;
}
else {
printf("Error add letter.\n");
exit(1);
}
}
else {
/* do nothing */
}
}
for (p = digits; p; p = p->next)
printf("%c", p->data);
for (p = letters; p; p = p->next)
printf("%c", p->data);
printf("\n");
return 0;
}
Сборка:
$ clang trah.c -o trah
Проверка:
$ echo ad2e57b6 | ./trah
2576beda
$ cat trah.c
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
struct node {
int data;
struct node *next;
} *digits = NULL, *letters = NULL;
int main() {
int c;
struct node *p, *q;
while ((c = getchar()) != EOF) {
if (isdigit(c)) {
p = (struct node *)malloc(sizeof *digits);
if (p) {
p->data = c;
p->next = NULL;
if (!digits)
digits = p;
else {
for (q = digits; q && q->next; q = q->next);
q->next = p;
}
}
else {
printf("Error add digit.\n");
exit(1);
}
}
else if (isalpha(c)) {
p = (struct node *)malloc(sizeof *letters);
if (p) {
p->data = c;
p->next = letters;
letters = p;
}
else {
printf("Error add letter.\n");
exit(1);
}
}
else {
/* do nothing */
}
}
for (p = digits; p; p = p->next)
printf("%c", p->data);
for (p = letters; p; p = p->next)
printf("%c", p->data);
printf("\n");
return 0;
}
Сборка:
$ clang trah.c -o trah
Проверка:
$ echo ad2e57b6 | ./trah
2576beda
Сергей Начина
$ cat trah.c не подскажите что это значит? Компилятор на него ругается! ,без него запускается, и при вводе строки, ничего не выводит !

Просто сортируем с проверкой и все. Что не получается-то?
Похожие вопросы
- Нужна срочно помощь. Помогите мне написать прогу на СИ, плиииз!!!
- помогите пожалуйста написать програмку на си ++
- помогите написать програмку (Pascal)!)
- кто знает Паскаль помогите написать програмку
- помогите написать программу на Си
- Помогите написать программу на Си
- помогите написать программу на Си
- помогите написать программу на си
- Помогите написать программу в СИ. буду очень благодарин
- помогите написать программу в Си