Форум программистов, компьютерный форум CyberForum.ru

сортировка - C++

Восстановить пароль Регистрация
 
besbyblik
1 / 1 / 0
Регистрация: 25.12.2010
Сообщений: 77
28.12.2010, 17:04     сортировка #1
Выбрать из строки буквы и отсортировать их в алфавитном порядке
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.12.2010, 17:04     сортировка
Посмотрите здесь:

C++ сортировка
C++ Сортировка.
C++ сортировка
C++ сортировка
Сортировка C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
M@ker
-73 / 19 / 1
Регистрация: 17.12.2010
Сообщений: 355
28.12.2010, 17:10     сортировка #2
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <conio.h>

char * str_to_upper(char * str){
char * s;
for ( s = str; *s; ++s )
*s = toupper(*s);
return str;
}

int asc_cmp(const void * a, const void * b){
return strcmp(*(char**)a, *(char**)b);
}

#define DELIM " \t\n"

int main(void){
char buf[BUFSIZ], *p, ** words;
int i, cnt, len;

printf("String: ");
scanf("%[^\n]", buf);
printf("Length: ");
scanf("%d", &len);

words = NULL;
cnt = 0;
for ( p = strtok(buf, DELIM); p; p = strtok(NULL, DELIM) ){
if ( strlen(p) == len ){
if ( ( words = (char**)realloc(words, sizeof(char*) * (cnt + 1)) ) == NULL ){
perror("realloc");
exit(1);
}
if ( ( words[cnt] = strdup(p) ) == NULL ){
perror("strdup");
exit(1);
}
str_to_upper(words[cnt]);
++cnt;
}
}
if ( ! words || ! cnt ){
fprintf(stderr, "No needed words found!\n");
exit(1);
}
qsort(words, cnt, sizeof(char*), asc_cmp);
printf("Result: ");
for ( i = 0; i < cnt; ++i )
printf("%s ", words[i]);
printf("\n");

for ( i = 0; i < cnt; ++i )
free(words[i]);
free(words);
getch();
return 0;
}
besbyblik
1 / 1 / 0
Регистрация: 25.12.2010
Сообщений: 77
28.12.2010, 17:13  [ТС]     сортировка #3
на си можно?
M@ker
-73 / 19 / 1
Регистрация: 17.12.2010
Сообщений: 355
28.12.2010, 17:17     сортировка #4
Цитата Сообщение от besbyblik Посмотреть сообщение
на си можно?
Перепиши сам
romedal
 Аватар для romedal
53 / 53 / 1
Регистрация: 18.03.2010
Сообщений: 345
Записей в блоге: 1
29.12.2010, 00:47     сортировка #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <cstdlib>
#include <cctype>
using namespace std;
int compare (const void* a, const void* b);
int main () {
 
    char a[100];
    cin>>a;
    //cout<<endl<<a[2]<<endl;
    qsort(a,strlen(a),sizeof(char),compare);
    for (int i =0; i<strlen(a); i++){
    if( isalpha(a[i]))
    cout<<a[i];
    }
_getch();
return 0;
}
 
int compare (const void* a, const void* b) {
char *af = (char*)a;
char *bf = (char*)b;
if((*af)<(*bf)) return -1; 
if((*af)==(*bf)) return 0;
if((*af)>(*bf)) return  1;
}
Добавлено через 2 часа 50 минут
А вот на С:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
using namespace std; //Эта строка необязательна
int compare (const void* a, const void* b);
int main () {
 
        char a[100];
        scanf("%s",a);
        qsort(a,strlen(a),sizeof(char),compare);
        for (int i = 0; i<strlen(a); i++){
        if( isalpha(a[i]))
        printf("%c",a[i]);
        }
_getch();
return 0;
}
 
int compare (const void* a, const void* b) {
char *af = (char*)a;
char *bf = (char*)b;
if((*af)<(*bf)) return -1; 
if((*af)==(*bf)) return 0;
if((*af)>(*bf)) return  1;
}
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
29.12.2010, 00:58     сортировка #6
Цитата Сообщение от romedal Посмотреть сообщение
C
1
using namespace std; //Эта строка необязательна
Всмысле не обязательная ?В Си нет пространства имен.
Yandex
Объявления
29.12.2010, 00:58     сортировка
Ответ Создать тему
Опции темы

Текущее время: 23:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru