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

создать статический массив строк как статический массив указателей на строки, задание ниже -->

28.04.2013, 12:41. Показов 2926. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Слова английского текста, начинающиеся с гласных букв, рассортировать в алфавитном порядке по первой согласной букве слова. Остальные слова в сортировке не должны участвовать

Видел один топик, там сортировка была по кол-ву символов в слове, разобраться сам не смог, в итоге прошу помощи у форумчан..
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.04.2013, 12:41
Ответы с готовыми решениями:

Нужно создать статический массив строк как статический массив указателей на строки. Условние ниже -->
Слова английского текста рассортировать по возрастанию количества заданной буквы в слове. Слова с...

Си: Статический массив указателей на строки
Туплю второй день, вопрос следующий: В программе использую строковые константы для реализации...

Создать статический двумерный массив и посчитать сумму каждой строки
Создать статический двумерный массив и его сумму в каждой строке C++ #include<iostream> using...

Как создать двухмерный, статический массив
Как создать двухмерный, статический массив, чтобы в него можно было вставить и числа, и символы?

4
Комп_Оратор)
Эксперт по математике/физике
8977 / 4704 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
28.04.2013, 15:10 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
#include <iostream>
#include <string>
#include <strstream>
#include <algorithm>
#include <vector>
using namespace std;
int main(int argc, char* argv[]){
setlocale(0,"rus");
string txtLineOfWords="betta alpha gamma month in if up day year date monday say still steal salt sure apple yelow underline east easy of off out owner eagle";
string glasn = "aeiouy";
strstream strStream;
strStream<<txtLineOfWords;
string tmp;
vector<string> sourcVecGlass;
int cnt=0;
cout<<"Массив гласных в заданном тексте "<<endl;
while(strStream>>tmp){
if((tmp.substr(0,1).find_first_of(glasn)==0)){sourcVecGlass.push_back(tmp);
cout<<sourcVecGlass[cnt++]<<endl;
    }
}
cout<<endl;
cout<<"Упорядочено "<<endl;
cout<<endl;
sort<std::vector<string>::iterator>(sourcVecGlass.begin(),sourcVecGlass.end());
for(std::vector<string>::iterator i=sourcVecGlass.begin(); i!=sourcVecGlass.end();++i){
cout<<*i<<endl;
}
cout<<endl;
cout<<endl;
system("pause");
return 0;
}
1
0 / 0 / 0
Регистрация: 28.04.2013
Сообщений: 3
28.04.2013, 16:01  [ТС] 3
Ооу, а вот про итераторы я не подумал, спасибо большое)
0
Комп_Оратор)
Эксперт по математике/физике
8977 / 4704 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
28.04.2013, 17:56 4
Цитата Сообщение от Вредер Посмотреть сообщение
в алфавитном порядке по первой согласной букве слова.
Вредер, простите, но не вычитал этого условия и просто лексографически отсортировал. Напишите свою ф-цию сравнения в к-рой две строки сравниваются по ascii первой встреченной согласной ( не принадлежащей glasn) и передайте в sort 3-м параметром.
0
Комп_Оратор)
Эксперт по математике/физике
8977 / 4704 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
29.04.2013, 18:26 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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
#include <iostream>
using namespace std;
 
bool is_Glasn(char in){
bool ret=false;
char *glas = "aeiouy";
for(int i=0; i<6; ++i)
if(in==glas[i]){
ret=true;
break;
    }
return ret;
}
 
char *getNextPointerToFirstWordSumb(char *FullStr){
char *toRet=FullStr;
int chInd=0;
while(toRet[chInd]!=' '||toRet[chInd]=='\0') ++chInd;
if(toRet[chInd]==' ')return &toRet[chInd+1];
if(toRet[chInd]=='\0')return 0;
}
 
int printMaddWord(char *begin){
int chInd=0;
char* toret=begin;
while(1){
if(begin[chInd]==' '||begin[chInd]=='\0')break;
cout<<begin[chInd];
++chInd;
}
return chInd;
}
 
int countMaddWordSumbols(char *begin){
int chInd=0;
char* toret=begin;
while(1){
if(begin[chInd]==' '||begin[chInd]=='\0')break;
++chInd;
}
return chInd;
}
 
char *getCstrWord(char *inStr){
int lenWthNoFinZero=countMaddWordSumbols(inStr);
char *outStr=new char[lenWthNoFinZero+1];
for(int i=0; i<lenWthNoFinZero; ++i){
outStr[i]=inStr[i];
}
outStr[lenWthNoFinZero]='\0';
return outStr;
}
 
int firstSogl(char *in){
int ret=-1;
int chInd=0;
    while(in[chInd]!='\0'){
        if(!is_Glasn(in[chInd])){
        ret=(int)in[chInd]; 
            break;
        }
chInd++;
    }
return ret;
}
 
bool compareFirstLessThanSecond(char *frst,char *scnd){
bool ret=firstSogl(frst)>firstSogl(scnd);
return ret;
}
 
void replasePtrs(char** PtrsOne, char** PtrsTwo){
 char* PtrsTmp=*PtrsOne;
*PtrsOne=*PtrsTwo;
*PtrsTwo=PtrsTmp;
}
 
bool sort(char **ptr_to__Str){
bool ret=false;
char **ptr_to_Madness_Str=ptr_to__Str;
int frstInd=0;
int scndInd=0;
char* first=0;
char* second=0;
while(ptr_to_Madness_Str[frstInd]!=0){
first=getCstrWord(ptr_to_Madness_Str[frstInd]);
if(is_Glasn(first[0])){//1 - c glasnoy
scndInd=frstInd+1;
while(ptr_to_Madness_Str[scndInd]!=0){
second=getCstrWord(ptr_to_Madness_Str[scndInd]);
if(is_Glasn(second[0])){//2 - s glasnoy
if(compareFirstLessThanSecond(first,second)){
ret=compareFirstLessThanSecond(first,second);
replasePtrs(&ptr_to_Madness_Str[frstInd], &ptr_to_Madness_Str[scndInd]);
}
}
scndInd++;
}
}
frstInd++;
}
return ret;
}
 
int main(int argc, char* argv[]){
setlocale(0,"rus");
const int sizeOfArr=256;
char *txtAsOneStr="betta alpha gamma still month in if up day year steal date monday owner say salt sure apple yelow of underline east easy off out eagle"; 
char* ptr_to_Madness_Str[sizeOfArr]={0};//статический массив указателей на элементы С-строки, кто скажет, что это не так пусть бросит камень
int chInd=0;
char* tmp_Ptr_Ch=txtAsOneStr;
while(*tmp_Ptr_Ch!='\0'){//заполняем массив из строки
ptr_to_Madness_Str[chInd++]=tmp_Ptr_Ch;
tmp_Ptr_Ch=getNextPointerToFirstWordSumb(tmp_Ptr_Ch);
}
cout<<endl;
chInd=0;
cout<<"Получен массив указателей на char, указывающих на: "<<endl;
while(ptr_to_Madness_Str[chInd]!=0){//печатаем, интересно же
cout<<chInd<<"\t";
printMaddWord(ptr_to_Madness_Str[chInd]);
cout<<endl;
chInd++;
}
chInd=0;
cout<<endl;
cout<<endl<<endl<<endl;
bool sorting=true;
while(sorting){//сортируем методом всплытия с потряхиваним
sorting=sort(ptr_to_Madness_Str);
}
 chInd=0;
 cout<<"Поcле сортировки указатели в массиве указывают на: "<<endl;
while(ptr_to_Madness_Str[chInd]!=0){//печатаем результат
cout<<chInd<<"\t";
printMaddWord(ptr_to_Madness_Str[chInd]);
cout<<endl;
chInd++;
}
cout<<endl;
cout<<endl;
system("pause");
return 0;
}
0
29.04.2013, 18:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.04.2013, 18:26
Помогаю со студенческими работами здесь

Как создать статический двумерный массив объектов одного класса?
Есть определенное множество объектов типа tile^. Нужно их положить в двумерный массив с...

Статический массив строк
Как исправить ошибку: Exception in thread &quot;main&quot; java.lang.ArrayIndexOutOfBoundsException: 0 at...

Статический двумерный массив, проверка строк на равенство
Составить программу, которая получает матрицу целых чисел Х размером n *n и массив целых,...

Создать статический массив со случайными элементами из заданного диапазона
Знает кто-то, как решить задачу на С++? При помощи одномерного динамического массива? Программа...


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

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