Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

С++ Строки. В чем проблема?

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> С++ Строки. В чем проблема?
Имя
Сообщение << Старые топики   Новые топики >>
С++ Строки. В чем проблема? - 2010-10-28 18:34:37.540000   
udde

Сообщений: 6
Оценки: 0
Присоединился: 2010-10-21 14:35:57.566666
Задание:
С клавиатуры вводится строка состоящая из слов.Удалить из строки все слова которые заканчиваются на букву <<a>>.

#include <stdio.h>
#include <conio.h>
#include <iostream.h>
#include <string.h>

void main()
{
int i,j;
char str;
clrscr();

cout<<"\nVvedite text \n";
gets(str);
for (i=0; i<strlen(str); i++)
if (str == 'a' && str !=' ')
{
i=j;
break;
}

else
cout<<str;
getch();
}



В чем проблема? У меня когда вводишь несколько слов в которых есть буква <<а>> удаляет все слова кроме одного где убирается <<а>> и все. А нужно "Удалить из строки все слова которые заканчиваются на букву <<a>"
Post #: 1
RE: С++ Строки. В чем проблема? - 2010-10-28 19:10:39.926666   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Проблема в том, что написан откровенный бред. Распиши сам для себя алгоритм и только потом уже берись за реализацию.

Если хочешь помощи именно со своим кодом - используй тэг для вставки кода и прокомментируй, что ты делаешь в каждой строке. Без этого нет смысла что-то тут исправлять.
Post #: 2
RE: С++ Строки. В чем проблема? - 2010-10-28 21:26:42.503333   
Sрam

Сообщений: 2863
Оценки: 372
Присоединился: 2009-01-16 15:23:43.276666
Заюзай strtok разбивай сначала на лексемы а там в цикле уже смотри свою букву а
Post #: 3
RE: С++ Строки. В чем проблема? - 2010-10-31 13:24:21.506666   
iselga

Сообщений: 5
Оценки: 0
Присоединился: 2010-10-31 13:21:58.983333
#include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;string.h&gt; using namespace std; int main() { int i=0, j=0; char str2[256]; // Заданная строка char str[256] = "rrrrra Wewddf Tttattka Rrirrrrrrfra"; for (i=0; i &lt; strlen(str); i++) if(str[i] == 'a' && str[i+1] == ' ') cout &lt;&lt; ""; else if (str[i]==str[strlen(str)-1] && str[i] == 'a') cout &lt;&lt; ""; else cout &lt;&lt; str[i]; //Вводим строку сами cout &lt;&lt; "\nEnter text: "; gets(str2); for (i=0; i &lt; strlen(str2); i++) if(str2[i] == 'a' && str2[i+1] == ' ') cout &lt;&lt; ""; else if (str2[i]==str2[strlen(str2)-1] && str2[i] == 'a') cout &lt;&lt; ""; else cout &lt;&lt; str2[i]; getch(); return 0; }
Post #: 4
RE: С++ Строки. В чем проблема? - 2010-10-31 14:44:17.013333   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
iselga, ты бы описал что не так. А мы бы подумали, как это исправить.
Post #: 5
RE: С++ Строки. В чем проблема? - 2010-10-31 22:16:43.350000   
iselga

Сообщений: 5
Оценки: 0
Присоединился: 2010-10-31 13:21:58.983333
у меня не то оказывается ща заметил…….у меня удаляются все буквы "а" на концах слов а надо сами слова…..сорри не дочиткал до конца…..а так полностью согласен с Spam……объяви массив char str[256] ну и с функцией strtok….
char * pch;
cout << "\n " << str;
pch = strtok (str," ");
while (pch != NULL)
{
cout << "\n " << pch;
pch = strtok (NULL, " ");
}
Post #: 6
RE: С++ Строки. В чем проблема? - 2010-10-31 22:37:13.166666   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
Надо примерно так:for (i=0; i &lt; strlen(str); i++) { if (str[i] == ' ' && str[i] == 'a') { word_start = i+1; } if (str[i+1] == ' ') { if (str[i] != 'a') { /* выводим на экран символы начиная с word_start до i */ } } }Надо искать начало слова, сохранять его позицию. Потом искать конец слова, и если конец – не 'а', то выводить. Но это не законченный код. Лишь набросок. Надо определиться с начальным значением word_start (тем что будет до цикла), и надо повтыкать внимательно в то что будет происходить: во-первых у меня есть сомнения, что это будет работать если стоит два пробела подряд; во-вторых, я вообще не уверен, что это будет работать – это лишь набросок.
Post #: 7
RE: С++ Строки. В чем проблема? - 2010-10-31 23:47:54.510000   
iselga

Сообщений: 5
Оценки: 0
Присоединился: 2010-10-31 13:21:58.983333
#include <iostream>
#include <conio.h>
#include <string.h>
#include <stdio.h>
using namespace std;
int main() {
int i=0, j=0;
char str2[256];
// Заданная строка
char str[256] = "rrrrra Wewddf Tttattka Rrirrrrrrfr wera";
int d=0;
char * pch;
cout << "\n" << str;
pch = strtok (str," "); // берем первую лексему(rrrrra)
cout << endl;
while (pch != NULL)
{ d += strlen(pch); //индекс конца лексемы
if(str[d-1] != 'a') // проверяем
cout << pch << " "; // если ок то выводим
pch = strtok (NULL, " ");
d++; // добавляем единицу с пробелов
}
cout << endl;

//———-Вводим строку сами но только через 1 пробел ———
// комментарии те же
cout << "\nEnter text: ";
gets(str2);
cout <<"\nVvedennaia stroka: " << str2 << endl;
int n=0;
char * pch1;
pch1 = strtok (str2," ");
cout << endl;
while (pch1 != NULL)
{ n += strlen(pch1);
if(str2[n-1] != 'a')
cout << pch1 << " ";
pch1 = strtok (NULL, " ");
n++;
}
getch();
return 0;
}
Post #: 8
RE: С++ Строки. В чем проблема? - 2010-10-31 23:56:29.133333   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
=)
Можно и так.
Post #: 9
RE: С++ Строки. В чем проблема? - 2010-11-08 09:15:46.680000   
dimonix6

Сообщений: 11
Оценки: 0
Присоединился: 2010-11-08 08:44:44.413333
quote:

Проблема в том, что написан откровенный бред.

Да-да, по-моему проблема именно в этом))
Post #: 10
RE: С++ Строки. В чем проблема? - 2010-11-08 09:28:41.606666   
Sрam

Сообщений: 2863
Оценки: 372
Присоединился: 2009-01-16 15:23:43.276666

quote:

ORIGINAL: dimonix6

quote:

Проблема в том, что написан откровенный бред.

Да-да, по-моему проблема именно в этом))

Ты типа самый умный?
Post #: 11
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> С++ Строки. В чем проблема?







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.