Опять проблема...

  • Автор темы AlexSaaa
  • Дата начала
Статус
Закрыто для дальнейших ответов.
A

AlexSaaa

Гость
#1
целый день делаю простую на первый взгляд задачку..и постояно что-т не сростается.. уже бумага на исходе((

суть в манипуляции чар строкой..напечатать слова не содержащие гласных...

int i, j;
char Letters[]={'e','y','u','i','o','a','E','Y','U','I','O','A'};

void Search (char *A){
//cout<<"A="<<A<<endl;
int idx=0;
if(strchr(A, ' ')!=0){

for(i=0; i<strlen(Letters); ++i){
  for(j=0; j<strlen(A)-strlen(strchr(A, ' ')); ++j){
  if(A[j]==Letters)++idx;cout<<A[j]<<"break"<<endl;break;
  }
}
 
if (idx==0)for(i=0;i<strlen(A)-strlen(strchr(A,' ')); ++i)cout<<A;
Search(strchr(A, ' ')+1);
}
}

int main(){
char *Text=new char [100];
cin.getline(Text, 100);
Search(Text);
cout<<Text<<endl;
Search(Text);
 
A

AlexSaaa

Гость
#2
написал но работает через раз..
char Lets[]="eyuioaEYUIOA";
int without=0;


int main(){
char *text=new char [100];
cin.getline(text, 100);

while(*(text+i)!='\0'){
if(strchr(Lets, *(text+i))){
strcpy(text+without, strchr(text, ' ')+1);
i=0;
}
if(*(text+i)==' ')without+=i;

++i;}
 
G

Guest

Гость
#3
Что-то ты себе выдумал за комбинацию из strlen\strchr для выделения слов? В обоих твоих задачах используется. Забудь про них вообще. Пробежал по строке, отметил начало, конец слова (не забываем о множественных пробелах, а также о последнем слове, заканчивающимся вместе со строкой), запомнил их, потом скопировал кусками.

И изучи наконец списки или динамические массивы - это ко второй задаче.
 
A

AlexSaaa

Гость
#4
пытался написать структуру для записи начала и конца слов,
.... написал... прошелся по строчке..распечетал результаты..бред

struct WordLoc{
int begin;
int end;
}*loc=new WordLoc[2*size];


while(text!='\0'){//words' position in text;
if(text==' '&&text[i+1]!=' ')loc[j].begin=i+1;
if(text!=' '&&text[i+1]==' ')loc[j].end=i;
if(text=='\0')loc.end=i;

++i;++j;
}
 
Статус
Закрыто для дальнейших ответов.