Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.51/55: Рейтинг темы: голосов - 55, средняя оценка - 4.51
0 / 0 / 1
Регистрация: 05.10.2015
Сообщений: 3
1

Сортировка строк по алфавиту

22.11.2015, 14:53. Показов 10669. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дана строка символов, состоящая из произвольного текста на англий-
ском языке, слова разделены пробелами. Вывести на экран слова этого текста в
порядке, соответствующем латинскому алфавиту.


Проблема в том, что я владею только самым начальным уровнем языка, строк и указателей.
Знаю, что это надо сделать с помощью strcmp



Как я понимаю, это должно выглядеть: Находим слова в строке, добавляем их в новый массив и сравниванием исходную строку и новый массив с выделенными словами.


Слова в строке я нашёл. Вопрос в том, как добавить их в новый массив и дальше сравнить..






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
32
33
34
35
36
37
38
39
#include <iostream>
#include <conio.h>
#include <cstring>
using namespace std;
 
int main(){
 
   
    char st[100], sl[100];
    int k=0, i;
 
    gets(st);
    strcat(st," ");   
 
 
    int n=strlen(st);  // размер строки  
 
    if (n < 2) return 1; 
 
 
    sl[0]='\0';    
 
    for (i = 0; i < n; i++)   
       if (st[i] != ' '){    
    sl[k]=st[i];       
    sl[k+1]='\0';       
    k++;     }    
    else
    { if (strlen(sl)>0) 
    cout << sl << endl;    
    sl[0]='\0';    
    k=0;
    }
 
    
 
    system( "pause" );
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.11.2015, 14:53
Ответы с готовыми решениями:

Сортировка строк по алфавиту
Здравствуйте! Помогите, пожалуйста, составить программу,которая бы считывала строки из файла и...

Сортировка строк по алфавиту
Здравствуйте. Имеется вот такая структура (для удобства оставил в ней только один элемент, с...

Сортировка строк по алфавиту в VS
Одно из подзаданий- отсортировать информацию за алфавитом смотря на Имя. Не совсем понимаю, как...

Сортировка строк по алфавиту
вот есть допустим такой код.. и мне нужно отсортировать каждый введенный title по алфавиту. Это...

2
193 / 100 / 131
Регистрация: 23.06.2015
Сообщений: 249
22.11.2015, 15:06 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
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <iostream>
#include <cstring>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
 
int main()
{
    char st[100], sl[100];
    vector<string> v;
    int k = 0, i;
 
    gets(st);
    strcat(st, " ");   
 
    int n = strlen(st); 
    if (n < 2) return 1; 
 
    sl[0] = '\0';  
    for (i = 0; i < n; i++)   
        if (st[i] != ' ')
        {    
            sl[k] = st[i];       
            sl[k + 1] = '\0';       
            k++;     
        }    
        else
        { 
            if (strlen(sl) > 0) 
            v.push_back(string(sl));  
            sl[0] = '\0';    
            k = 0;
        }
 
    sort(v.begin(), v.end());
    n = v.size();
    for (i = 0; i < n; i++)
        cout << v[i] << endl;
 
    system("pause");
    return 0;
}
0
0 / 0 / 1
Регистрация: 05.10.2015
Сообщений: 3
22.11.2015, 15:52  [ТС] 3
Огромное спасибо, НО. мы этого ещё не проходили. Вопрос в том то и был, как это сделать без sort, vector и т.п.
С испольованием strcmp

Добавлено через 41 минуту
Ну вроде как с сортировкой разобрался, только есть одна проблема.
Т.е. ошибка, как я думаю, в указателях, а точнее в их отсутствии.
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <iostream>
#include <conio.h.>
#include <cstring>
using namespace std;
 
int main()
 
{
    int j;
char st[100], sl[100];
    int k=0, i;
 
    gets(st);
    strcat(st," ");   
 
 
    int n=strlen(st);  // размер строки  
 
    if (n < 2) return 1; 
 
 
    sl[0]='\0';    
 
    for (i = 0; i < n; i++)   
       if (st[i] != ' '){    
    sl[k]=st[i];       
    sl[k+1]='\0';       
    k++;     }    
    else
    { if (strlen(sl)>0) 
    cout << sl << endl;    
    sl[0]='\0';    
    k=0;
    }
 
 
    for(i=0;i<n-1;i++)
        for(j=i+1;j<n;j++)
            if(strcmp(st[i],st[j])>0)
            {   strcpy(sl,st[i]); // аргумент типа "char" несовместим с параметром типа "const char*" 
                strcpy(st[i],st[j]);
                strcpy(st[j],sl);
            }
    cout<<"Results:\n";
    for(i=0;i<n;i++)
        cout<<st[i]<<"\n";
    _getch();
    return 0;
}
0
22.11.2015, 15:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.11.2015, 15:52
Помогаю со студенческими работами здесь

Сортировка строк матрицы по алфавиту
Пытаюсь создать сортировку строк матрицы по алфавиту. Возникшие проблемы описала в комментариях в...

Сортировка массива строк по алфавиту c++
project raised exception class eaccessviolation with message 'access violation at address...

Лексикографическое сравнение. Сортировка строк по алфавиту
Как отсортировать двумерный массив в лексикографическом порядке в меньшую сторону. (Строки содержат...

Сортировка строк по алфавиту (библиотечные функции)
Здравствуйте! Согласно заданию, мне нужно создать программу, которая может отсортировать слова...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru