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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Вредер
0 / 0 / 0
Регистрация: 28.04.2013
Сообщений: 3
#1

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

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

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

Видел один топик, там сортировка была по кол-ву символов в слове, разобраться сам не смог, в итоге прошу помощи у форумчан..
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.04.2013, 12:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос создать статический массив строк как статический массив указателей на строки, задание ниже --> (C++):

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

Создать статический двумерный массив и посчитать сумму каждой строки - C++
Создать статический двумерный массив и его сумму в каждой строке C++ #include<iostream> using namespace std; int main() { int...

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

Создать статический массив на 10 элементов и заполнить его случайными числами из диапазона [0;5] - C++
Знает кто-то, как решить задачу на С++? Создать статический массив на 10 элементов и заполнить его случайными числами из диапазона ....

Создать перегруженную функцию mas(), выводящую одномерный статический числовой массив - C++
Может кто помочь пожалуйста, надо создать функцию mas(), которая выводит одномерный статический числовой массив объектов, символьный массив...

Как очистить статический массив? - C++
у меня в классе обявлен статический массив - static overall_data* array_persone; после класса задаю размер overall_data*...

4
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6503 / 3139 / 307
Регистрация: 04.12.2011
Сообщений: 8,661
Записей в блоге: 5
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
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6503 / 3139 / 307
Регистрация: 04.12.2011
Сообщений: 8,661
Записей в блоге: 5
28.04.2013, 17:56 #4
Цитата Сообщение от Вредер Посмотреть сообщение
в алфавитном порядке по первой согласной букве слова.
Вредер, простите, но не вычитал этого условия и просто лексографически отсортировал. Напишите свою ф-цию сравнения в к-рой две строки сравниваются по ascii первой встреченной согласной ( не принадлежащей glasn) и передайте в sort 3-м параметром.
0
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6503 / 3139 / 307
Регистрация: 04.12.2011
Сообщений: 8,661
Записей в блоге: 5
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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.04.2013, 18:26
Привет! Вот еще темы с ответами:

Статический массив как член класса - C++
Я туплю, что ли, почему это компилируется? о_О struct V { int v; }; V v1; V v2(v1); // копирование v2 = v1; //...

Как перевести статический массив в динамический? - C++
Есть статический массив типа char,подскажите как перевести его в динамический и как потом изменять его размерность если понадобиться...

Как этот массив переделать в статический? - C++
#include &lt;stdlib.h&gt; //для system #include &lt;stdio.h&gt; //для fscanf #include &lt;iostream&gt; //для cout #include &lt;iomanip&gt; //для setw ...

Как очистить статический массив структур? - C++
structure A { char name; int weight; }; A B; В массив &quot;В&quot; я считал текстовый файл, теперь его нужно очистить что-бы считать...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru