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

Используя указатель рассортировать массив строк в алфавитном порядке - C++

Восстановить пароль Регистрация
 
Shenan
0 / 0 / 0
Регистрация: 01.11.2010
Сообщений: 26
10.01.2014, 05:13     Используя указатель рассортировать массив строк в алфавитном порядке #1
Доброй ночи, ребят!
необходимо используя указатель рассортировать массив строк в алфавитном порядке.
что-то делать пыталась, но получилось не совсем верно, через вектор и без указателей..помогите исправить пожалуйста


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
#include "stdafx.h"
#include <string> 
#include <vector> 
#include <algorithm> 
#include <iostream> 
 
using namespace std; 
 
int main() 
{ 
    setlocale(LC_ALL, "Russian");
 vector<string> v; 
 v.push_back("расцветали"); 
 v.push_back("яблони"); 
 v.push_back("и"); 
 v.push_back("груши"); 
 
  sort(v.begin(), v.end()); 
 for (vector<string>::const_iterator i(v.begin()); i != v.end(); ++i) 
 { 
 cout << *i << endl; 
 } 
 return 0; 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.01.2014, 05:13     Используя указатель рассортировать массив строк в алфавитном порядке
Посмотрите здесь:

C++ Массив алфавитном порядке
Сортировка строк в алфавитном порядке C++
Сортировка строк в алфавитном порядке C++
Cортировка строк в алфавитном порядке C++
Сортировка строк в алфавитном порядке (переделать на wstring) C++
Ввести массив структур; рассортировать массив в алфавитном порядке C++
Сортировать информацию из списка в алфавитном порядке, используя перемещение записей C++
C++ Сортировка строк матрицы в алфавитном порядке

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
egor2116
 Аватар для egor2116
337 / 368 / 42
Регистрация: 20.01.2013
Сообщений: 1,100
10.01.2014, 12:29     Используя указатель рассортировать массив строк в алфавитном порядке #2
Как то так
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
29
30
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
 
void print(std::string s1)
{
     std::cout << s1 << " ";
}
 
bool compare(std::string s1, std::string s2)
{
     return s1 < s2;
}
 
int main()
{   
 std::vector< std::string > vec;
 
 vec.push_back("ramu");
 vec.push_back("mila");
 vec.push_back("mama");
 
 std::for_each(vec.begin(), vec.end(), print); std::cout << std::endl;
 std::sort(vec.begin(), vec.end(), compare);
 std::for_each(vec.begin(), vec.end(), print); std::cout << std::endl;
 
  system("PAUSE");
  return 0;
}
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
10.01.2014, 13:31     Используя указатель рассортировать массив строк в алфавитном порядке #3
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
29
30
31
#include <iostream>
#include <string.h>
using namespace std; 
 
int main() 
{ 
    setlocale(LC_ALL, "Russian");
 
    char* arr_str[] = {"расцветали", "яблони", "и", "груши"}; 
    
    int n = sizeof(arr_str) / sizeof(char*);
    for (char** i = arr_str; i < arr_str + n; ++i) 
        cout << *i << endl; 
    cout << endl;
    
    char* tmp;
    for(int i = 0; i < n - 1; ++i) 
        for(int j = 0; j < n - 1; ++j) 
            if (strcmp(*(arr_str + j + 1), *(arr_str + j)) < 0)
            {
                tmp = *(arr_str + j + 1); 
                *(arr_str + j + 1) = *(arr_str + j); 
                *(arr_str + j) = tmp;
            }
        
    for (char** i = arr_str; i < arr_str + n; ++i) 
        cout << *i << endl; 
    
    cin.get();
    return 0; 
}
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
29
30
31
#include <iostream>
#include <string.h>
#include <algorithm> 
using namespace std;
 
bool f(char* str1, char* str2)
{
    if (strcmp(str1, str2) < 0)
        return true;
    return false;
}
 
int main() 
{ 
    setlocale(LC_ALL, "Russian");
 
    char* arr_str[] = {"расцветали", "яблони", "и", "груши"}; 
    
    int n = sizeof(arr_str) / sizeof(char*);
    for (char** i = arr_str; i < arr_str + n; ++i) 
        cout << *i << endl; 
    cout << endl;
    
    sort(arr_str, arr_str + n, f);
        
    for (char** i = arr_str; i < arr_str + n; ++i) 
        cout << *i << endl; 
    
    cin.get();
    return 0; 
}
Yandex
Объявления
10.01.2014, 13:31     Используя указатель рассортировать массив строк в алфавитном порядке
Ответ Создать тему
Опции темы

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