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

Дана строка Найти и вывести все слова палиндромы - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.67
Last_Night
19 / 19 / 0
Регистрация: 02.10.2012
Сообщений: 124
08.12.2012, 17:46     Дана строка Найти и вывести все слова палиндромы #1
Дана строка слова в который разделены пробелами необходимо найти и вывести все слова палиндромы.
Вот кое какой код я накидал но он проверяет только первое слово((
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
void main(){
clrscr();
char str[1000],bufer[200],b2[200];
int i=0,x,j=0;
cout<<"Vvedite stroky"<<endl;
gets(str);
 
   for (int m=0; m<200; m++) {bufer[m]=0;} // очистка переменной
   for (m=0; m<200; m++) {b2[m]=0;}
 
while(j<=strlen(str)) {
   for (i=j; i<=strlen(str); i++) {
    if(str[i]==' ') { break;}
    bufer[i]=str[i];
    }
    j=i;
    strcpy(b2,bufer);
    strrev(bufer);
   if ((strcmp(bufer,b2))==0) cout<<"Yes slovo "<<b2<<" perevert";  }
 
getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.12.2012, 17:46     Дана строка Найти и вывести все слова палиндромы
Посмотрите здесь:

Дана строка. Вывести все слова, содержащиеся в строке, в столбец. C++
Дана строка, содержащая текст. Вывести все слова, повторяющиеся более трех раз. C++
Вывести на экран все слова палиндромы C++
C++ Дана строка найти все слова которые начинаются с буквой "c"
C++ Дана строка символов, состоящая из произвольного текста, слова раз-делены пробелами. Вывести на экран порядковый номер слова, накрывающего k позицию
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
08.12.2012, 18:19     Дана строка Найти и вывести все слова палиндромы #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <cstring>
int main()
{
     char str[100];
     std::cin.getline(str,100);
     char* s = strtok(str,",.?!;: ");
     do {
         bool flag = true;
       for (int i=0; i<strlen(s)/2; i++)
              if (s[i]!=s[strlen(s)-i-1])
                  {
                        flag=false;
                        break;
                }
       if (flag)
        std::cout<<s<<'\n'; 
      } while (s=strtok(NULL,",.?!;: "));
     return 0;
}
Last_Night
19 / 19 / 0
Регистрация: 02.10.2012
Сообщений: 124
08.12.2012, 18:59  [ТС]     Дана строка Найти и вывести все слова палиндромы #3
как сделать чтоб она работала в Borland C++ досовском?
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
08.12.2012, 19:04     Дана строка Найти и вывести все слова палиндромы #4
Никогда в таком не писал код, но возможно стоит написать iostream.h, string.h и перед каждым cin/cout убрать std::.
И чтобы не закрывалась сразу, перед return 0 дописать cin.get().
Last_Night
19 / 19 / 0
Регистрация: 02.10.2012
Сообщений: 124
08.12.2012, 21:44  [ТС]     Дана строка Найти и вывести все слова палиндромы #5
спасибо попробую

Добавлено через 24 минуты
переделал работает, огромное спасибо
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream.h>
#include <string.h>
#include <conio.h>
#include <stdio.h>
void main()
{
     char str[100];
     cin.getline(str,100);
     char* s = strtok(str,",.?!;: ");
     do {
     int flag=1;
       for (int i=0; i<strlen(s)/2; i++)
          if (s[i]!=s[strlen(s)-i-1])
          {
            flag=0;
            break;
        }
       if (flag==1)
      cout<<s<<'\n';
      } while (s=strtok(NULL,",.?!;: "));
      getch();
}
а в какой среде работаете?
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
08.12.2012, 23:14     Дана строка Найти и вывести все слова палиндромы #6
orwell dev-cpp и visual studio 2012.
Yandex
Объявления
08.12.2012, 23:14     Дана строка Найти и вывести все слова палиндромы
Ответ Создать тему
Опции темы

Текущее время: 16:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru