С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
kuleshovpe
0 / 0 / 0
Регистрация: 18.04.2014
Сообщений: 5
1

Найти в тексте слова, которые начинаются и заканчиваются одной и той же буквой

10.10.2014, 15:20. Просмотров 1079. Ответов 4
Метки нет (Все метки)

Нужна программа для нахождения в тексте слов, которые начинаются и заканчиваются одной и той же буквой, если такие слова есть, то написать true, если нет, то false. Вообщем есть набросок а что дальше делать не понятно.
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
#include<iostream>
using namespace std;
void cim (string &a)
{
     int i, s1,s2,k,m,y;
    for(i=0;i<m;i++)
    {
    for (k=0;k=' ';k++)
    {
    if (a[k]=='a'-'A'||a[k]=='z'-'Z')
         a[k]==s2;
         if(k=0)
         a[k]=s1;
    }
 if(s1==s2)
     bool =&y; //expected primary-expression before "bool" и expected `;' before "bool" 
        else
        cim(a);
   
}
int main () //expected primary-expression before "int" и expected `;' before "int" 
{
         string a;
         int a,m,y;
         getline (cin,a);
         m=a.length();
         cim(a);
       
       
       y=true
       cout>>y>>endl;
       system("pause");
       return 0;
} //expected `}' at end of input
В чем проблемы?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.10.2014, 15:20
Ответы с готовыми решениями:

Найти в тексте слова, которые начинаются и заканчиваются одной и той же буквой
В соответствии с вариантом задания написать, отладить и протестировать...

Найти те слова, которые начинаются и заканчиваются одной и той же буквой
1_Символьная строка заканчивается восклицательным знаком (!). Слова в ней...

Найти слова, которые начинаются и заканчиваются одной и той же буквой (перевести из Паскаля в С++)
uses crt; var s,sl,sn: string; a: array of string; i,k: integer;...

Строки. Найти все слова, которые начинаются и заканчиваются одной и той же буквой.
задан текст. найти все слова, которые начинаются и заканчиваются одной и той же...

Дана строка. Найти в ней те слова, которые начинаются и заканчиваются одной и той же буквой
#include &lt;stdio.h&gt; #include &lt;string.h&gt; int main() { char str =...

4
jurok_85
275 / 258 / 190
Регистрация: 21.02.2013
Сообщений: 617
Завершенные тесты: 1
10.10.2014, 19:05 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 <windows.h>
#include <string>
#include <sstream>
#include <cctype>
using namespace std;
bool check(const string& str)
{
    stringstream ss(str);
    string temp;
    while(ss>> temp)
    {
        int sz = temp.length();
        if(temp[0] == temp[sz-1]&& sz != 1) return true;
        else if(!isalpha(temp[sz-1]) && temp[0] == temp[sz-2]&& sz != 1)return true;
 
    }
    return false;
 
}
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    string str;
 
    getline(cin, str);
    if(check(str)) cout << "true";
    else cout << "false";
    return 0;
 
}
2
kuleshovpe
0 / 0 / 0
Регистрация: 18.04.2014
Сообщений: 5
10.10.2014, 19:15  [ТС] 3
Чувак, а есть как-нибудь полегче на уровне школьной программы
0
daslex
1291 / 535 / 177
Регистрация: 02.08.2011
Сообщений: 2,756
10.10.2014, 21:20 4
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
#include <iostream>
#include <string>
#include <windows.h>
#include <algorithm>
 
using namespace std;
 
//Чтобы ясно было. tolower для русских символов не работает, но
//в тексте могут встречаться слова с большой буквы,
//т.к. буквы-то одинаковые, для сравнения нужно приводить их к одному регистру
//для этого свою функцию описываешь
char my_tolower(const char ch){
    switch (ch){
        case 'А':return 'а';
        case 'Б':return 'б';
        case 'В':return 'в';
        case 'Г':return 'г';
        case 'Д':return 'д';
        case 'Е':return 'ё';
       //дописывай алфавит (либо используй аналогичную функцию, если поймешь)
    }
}
 
int     main()
{
   SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    char separator[]=" /,.+-*!";  //разделители
    string s;
    getline(cin,s);
    transform(s.begin(),s.end(),s.begin(),::tolower);  //Приведение строки к нижн.регистру. (не работает для рус)
 
 
    char *ch=&(s[0]);  //Указатель на начало строки
    int index=0;       //Индекс буферной строки
    char S[256]="";    //буфферная строка (в эту строку строится слово)
    bool flag=false;        //признак того, что есть такие слова
 
    do{
        if (!strchr(separator,*ch)) {    //Если текущий символ не разделитель
             S[index]=my_tolower(*ch);               //Записываем символ в буфферную строку, my_tolower для рус
 
             index++;                    //Смещаем индекс буферной строки
        }
         else{                           //Если разделитель
            if (index) {                 //Если в строке 1 символ или больше
                   if ((S[0]==S[strlen(S)-1]) || (strlen(S)==1)) {
                        flag=true; break; //Нашли такое слово и вышли из цикла
                        }
 
                    for (int i=0;i<index;i++) S[i]=0; //Если был разделитель, чистим буфер строку для нового слова
                    index=0; //и смещаем индекс в начало
            }
 
         }
    } while (*ch++); //Пока не встретим нуль символ
 
 
   if (flag) cout<<"OK";
   else cout<<"NO";
 
};
1
sergestus
78 / 78 / 34
Регистрация: 26.10.2011
Сообщений: 220
Завершенные тесты: 1
10.10.2014, 22:00 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
#include <iostream>
#include <regex>
#include <string>
 
using namespace std;
 
bool FindWord( string &inputString, string &word )
{
  regex expression("([^\\s]+)"); 
  for( sregex_token_iterator i(inputString.begin(), inputString.end(), expression); 
    i!=sregex_token_iterator(); i++) 
    if( *((string)(*i)).begin() == *((string)(*i)).rbegin() ) 
    {
      word = *i;
      return true;
    }
 
  return false;
}
 
int main(int argc, char* argv[])
{
  string inputString = "qwe eg sdf fsf", word;    
  cout << "Searching line:" << inputString << endl;
 
  if( FindWord( inputString, word ) )
    cout << "Found word: " << word << endl;
  else 
    cout << "Word wasn't found..." << endl;
 
  system("pause");
}
1
10.10.2014, 22:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.10.2014, 22:00

Найти количество слов, которые начинаются и заканчиваются одной и той же буквой
Проблема(

Определить количество слов, которые начинаются и заканчиваются одной той же буквой
Помогите пожалуйста решить задачи 3. Дана строка, состоящая из слов,...

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


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

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

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