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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Указатель на статический массив как параметр шаблона - C++
Добрый день. Необходимо параметр шаблона сделать указателем и передавать в него указатель на статический массив: template&lt;size_t...

Как инициализировать статический константный массив в классе? - C++
Например, есть класс, которой статически хранит виды себя. Не могу понять как его инициализировать (Или может предложите хранить по...

В двумерном массиве A[N][M] упорядочить строки так, что бы возрастали элементы заданного столбца. Массив статический - C++
Очень надо! Пожалуйста помогите!!!

Как вернуть статический массив из метода и присвоить его производному классу? - C++
class A { float mas; public: float GetMas(){return mas;} }; class B: public A { B(const A&amp; obj) {


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

Или воспользуйтесь поиском по форуму:
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6444 / 3083 / 306
Регистрация: 04.12.2011
Сообщений: 8,494
Записей в блоге: 4
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;
}
Yandex
Объявления
29.04.2013, 18:26     создать статический массив строк как статический массив указателей на строки, задание ниже -->
Ответ Создать тему
Опции темы

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