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

Определить является ли строка палиндромом и удалить заглавные символы - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 4.88
nikola_omsk
3 / 3 / 0
Регистрация: 27.05.2011
Сообщений: 73
11.10.2012, 16:10     Определить является ли строка палиндромом и удалить заглавные символы #1
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
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <ctype.h>
using namespace std;
 
int main()
{
 
char* s= new char [128]; //задаем строку
char buf[250]; //для пробелов
string k;  //еще строка
cout<<"predlogenie : ";
gets(buf); //считываем
s = buf;
int i=0;
for(int j=0; j<strlen(s); j++)//цикл
{
if(s[j]!=' ')
{
k+=s[j]; //убираем пробел и провряем на палиндром
}
else //если не палиндром
{
for(int i=0; i<k.length(); i++) //цикл
{
if(k[i]!=k[k.length()-i-1])
{
  {
  for ( int i = 0; i < strlen(s); i++)
            if(isupper(s[i])) //если буква большая
            delchar(s,i,1); //удаляем
             std::cout << s << std::endl; //выводим
  }
}
else
{
cout << "slovo " << k << " yes" << endl;//вывод палиндрома
}
k="";
}
}
}
return 0;
}
какую функцию подобрать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.10.2012, 16:10     Определить является ли строка палиндромом и удалить заглавные символы
Посмотрите здесь:

C++ Проверить, является ли строка палиндромом
Дана строка символов до точки. Составить программу, проверяющую, является ли данная строка палиндромом, т. е. читается ли она слева направо и справа н C++
Определить, является ли заданная строка палиндромом C++
C++ Используя стек, определить, является ли введённая с клавиатуры строка палиндромом
Используя стек, определить, является ли введённая с клавиатуры строка палиндромом. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
David Sylva
 Аватар для David Sylva
1280 / 942 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
11.10.2012, 18:04     Определить является ли строка палиндромом и удалить заглавные символы #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
34
35
#include <iostream> 
 
int main() 
{ 
    char* str; 
    str = new char[100];  
    int count = 0;
    int i, j;
    std::cout << "Inter a string " << std::endl; 
    std::cin.getline(str, 100); 
    int size = strlen(str); 
 
    for ( i = 0, j = size - 1; i < size / 2; i++, j--)  
        if(str[i] == str[j]) 
            count++; 
    if(count == size / 2) 
        std::cout << "Palindrom " << std::endl; 
    else 
        std::cout << "Ne palindrom " << std::endl;  
 
    for ( i = 0; i < size; i++) 
        if(isupper(str[i])) 
        { 
            for ( j = i; j < size - 1; j++) 
            { 
                str[j] = str[j+1]; 
            } 
            size--; 
        } 
 
        for ( i = 0; i < size; i++) 
            std::cout << str[i]; 
        std::cout << std::endl;
 
}
nikola_omsk
3 / 3 / 0
Регистрация: 27.05.2011
Сообщений: 73
11.10.2012, 18:16  [ТС]     Определить является ли строка палиндромом и удалить заглавные символы #3
я уже надоел наверно..с палиндромом все супер...а буква удаляется как то не так
David Sylva
 Аватар для David Sylva
1280 / 942 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
11.10.2012, 18:18     Определить является ли строка палиндромом и удалить заглавные символы #4
Как не так?
nikola_omsk
3 / 3 / 0
Регистрация: 27.05.2011
Сообщений: 73
11.10.2012, 18:20  [ТС]     Определить является ли строка палиндромом и удалить заглавные символы #5
пример
ASA asas ASA
S asas S выдает
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
11.10.2012, 18:25     Определить является ли строка палиндромом и удалить заглавные символы #6
Ну и такой вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <string>
#include <algorithm>
#include <cctype>
using namespace std;
 
int main()
{
    string s;
    getline(cin, s);
    if (equal(s.begin(), s.begin() + s.size()/2, s.rbegin()))
        cout << "\"" << s << "\" is a palindrome\n";
    else
        cout << "\"" << s << "\" is not palindrome\n";
    transform(s.begin(), s.end(), s.begin(), tolower);
    cout<<s<<endl;
    system("pause");
    return 0;
}
David Sylva
 Аватар для David Sylva
1280 / 942 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
11.10.2012, 18:30     Определить является ли строка палиндромом и удалить заглавные символы #7
Держи подправил
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
#include <iostream> 
 
int main() 
{ 
    char* str; 
    str = new char[100];  
    int count = 0;
    int i, j;
    std::cout << "Inter a string " << std::endl; 
    std::cin.getline(str, 100); 
    int size = strlen(str); 
 
    for ( i = 0, j = size - 1; i < size / 2; i++, j--)  
        if(str[i] == str[j]) 
            count++; 
    if(count == size / 2) 
        std::cout << "Palindrom " << std::endl; 
    else 
        std::cout << "Ne palindrom " << std::endl;  
    for ( i = 0; i < size; i++) 
        if(isupper(str[i])) 
        { 
            for ( j = i; j < size - 1; j++) 
            { 
                str[j] = str[j+1]; 
            } 
            size--; 
            i--;
        } 
 std::cout << size << std::endl;
        for ( i = 0; i < size; i++) 
            std::cout << str[i]; 
        std::cout << std::endl;
 
}
nikola_omsk
3 / 3 / 0
Регистрация: 27.05.2011
Сообщений: 73
11.10.2012, 18:33  [ТС]     Определить является ли строка палиндромом и удалить заглавные символы #8
от души....спасиб
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.10.2012, 19:06     Определить является ли строка палиндромом и удалить заглавные символы
Еще ссылки по теме:

C++ Определить, является ли строка палиндромом. Модифицировать код
Является ли строка палиндромом C++
Является ли строка палиндромом C++

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

Или воспользуйтесь поиском по форуму:
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
11.10.2012, 19:06     Определить является ли строка палиндромом и удалить заглавные символы #9
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
#include <string>
#include <algorithm>
#include <iostream>
#include <locale>
 
int main()
{
    std::string p("aaaBBBaaa");
    if
    (
        std::mismatch
        (
            p.begin(),
            p.begin() + p.size() / 2,
            p.rbegin()
        ).first == p.begin() + p.size() / 2
    )
        std::cout << "Palindrome" << std::endl;
    else
        std::cout << "Not a palindrome" << std::endl;
    p.erase
    (
        std::remove_if
        (
            p.begin(),
            p.end(),
            [] (const char& c)
            {
                return std::isupper(c, std::locale());
            }
        ),
        p.end()
    );
    std::cout << p << std::endl;
    return 0;
}
yuron_477, 1) надо удалить, а не преобразовать, 2) std::tolower есть в locale, поэтому, если раскрываете пространство имен, ставьте :: перед ним
Yandex
Объявления
11.10.2012, 19:06     Определить является ли строка палиндромом и удалить заглавные символы
Ответ Создать тему
Опции темы

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