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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Temoffey
20 / 40 / 0
Регистрация: 21.11.2010
Сообщений: 96
#1

Написать функцию, находящую в строке символов симметричное слово. - C++

21.11.2010, 21:58. Просмотров 863. Ответов 8
Метки нет (Все метки)

Возможно ли создание программы:
Написать функцию, находящую в строке символов симметричное слово.
Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.11.2010, 21:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Написать функцию, находящую в строке символов симметричное слово. (C++):

Написать функцию, находящую в строке символов симметричное слово. - C++
Помогите плз. Написать функцию, находящую в строке символов симметричное слово.

Написать функцию, находящую в заданной строке количество подстрок, состоящих из цифр - C++
Помагите пожалуйста! задание по программир. Напишите функцию Int kol(char*s) которая находит в заданной строке количество подстрок,...

Написать функцию, находящую в строке двузначное число (возвращает true или false) - C++
bool without_double(char stroka) { int j; for (unsigned j = 0; j < strlen(stroka); j++) if (isdigit(stroka) && isdigit(stroka) ==...

В строке найти самое длинное симметричное слово - C++
Помогите пожалуйста написать программу. Задача:В строке найти самое длинное симметричное слово(кабак, казак,...). Надо что-бы было...

Найти самое длинное симметричное слово в строке - C++
добрый день, необходимо найти самое длинное симметричное слово в строке. Помогите поправить ошибки, компилятор ругается на мой код. ...

В строке найти самое длинное симметричное слово - C++
Здравствуйте, помогите пожалуйста написать программу. В строке найти самое длинное симметричное слово. Написал его в консоле win32...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
silent_1991
Эксперт С++
4963 / 3039 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
22.11.2010, 03:25 #2
Возможно.
Temoffey
20 / 40 / 0
Регистрация: 21.11.2010
Сообщений: 96
22.11.2010, 12:16  [ТС] #3
Н так а как она будет выглядеть???
silent_1991
Эксперт С++
4963 / 3039 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
22.11.2010, 12:21 #4
Смотря кто будет писать. Если хороший программист - то кратко и понятно, если плохой - то запутанно и даже у далёкого от программирования человека будет вызывать отвращение.

Не по теме:

А если отбросить флуд и говорить по теме - то вы бы хоть что-то сами попытались сделать, помимо требования немедленного ответа на вопрос "Н так а как она будет выглядеть???", после которого уже хочется закрыть браузер и больше в эту тему не заходить.

МаксимМВ
C/C++
90 / 90 / 5
Регистрация: 01.07.2010
Сообщений: 281
22.11.2010, 14:29 #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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include <stdio.h>
#include <stdlib.h>
 
#define TRUE 1
#define FALSE 0
 
char* findSimmSl(char *sl)
{
    int ln=0, num_letters;
    while (sl[ln]!='\0')
    {
        num_letters=0;
        while (sl[ln]!=' '&&sl[ln]!='\b'&&sl[ln]!='\0')
        {
            num_letters++;
            ln++;
        }
        ln-=num_letters;
        char *stack=malloc(num_letters/2*sizeof(char));
 
        int i=0;
        for (;i<num_letters/2;ln++,i++)
            stack[i]=sl[ln];
        if (num_letters%2==1)
            ln++;
        int found=TRUE;
        for (i--;i>=0;i--,ln++)
            if (sl[ln]!=stack[i])
                found=FALSE;
        if (found)
        {
            ln-=num_letters;
            char* okstr=malloc((num_letters+1)*sizeof(char));
            for (i=0;i<num_letters;i++,ln++)
                okstr[i]=sl[ln];
            okstr[i]='\0';
            free(stack);
            return okstr;
        }
        free(stack);
        ln++;
    }
    return "";
}
 
int main(int argc, char *argv[])
{
    char str[1024];
    gets(str);
    char* slov=findSimmSl(str);
    printf("%s\n",slov);
    if (*slov!='\0') free(slov);
    return 0;
}
Только если строка, возвращённая функцией не пуста, надо освобождать память (я не знаю как сначала вернуть значение, а потом освободить память в функции). Моя первая программа c malloc и free. Защита от переполнения буффера есть. Ищет только английские слова! Это в Линуксе. Не знаю как в винде. Откомпилировал и отладил.
easybudda
Модератор
Эксперт CЭксперт С++
9531 / 5524 / 932
Регистрация: 25.07.2009
Сообщений: 10,611
22.11.2010, 15:02 #6
Цитата Сообщение от Temoffey Посмотреть сообщение
в строке символов симметричное слово
Если слова в строке чем-нибудь разделены (пробелами например), то вот
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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int test(char * buf, int size){
    char * head, * tail;
    
    for ( head = buf, tail = buf + size - 1; head < tail; ++head, --tail )
        if ( *head != *tail )
            return 0;
    
    return 1;
}
 
#define DELIM " \t\n,.:;!?"
 
int main(void){
    char buf[BUFSIZ], * p;
    
    printf("String: ");
    if ( ! fgets(buf, BUFSIZ, stdin) ){
        perror("fgets");
        exit(1);
    }
    
    for ( p = strtok(buf, DELIM); p; p = strtok(NULL, DELIM) )
        if ( test(p, strlen(p)) )
            printf("%s\n", p);
    
    exit(0);
}
если же нужно найти в потоке байтов симметричный фрагмент, немного замороченнее, но эта же функция test() вполне пригодится...
Temoffey
20 / 40 / 0
Регистрация: 21.11.2010
Сообщений: 96
18.03.2011, 16:34  [ТС] #7
Возможна ли функция без использования Strtok, strlen, и т.д.???
silent_1991
Эксперт С++
4963 / 3039 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
18.03.2011, 16:37 #8
Написать собственные strtok, strlen...
Temoffey
20 / 40 / 0
Регистрация: 21.11.2010
Сообщений: 96
20.03.2011, 12:55  [ТС] #9
Вот в том то и вопрос нужна собственная strtok...
А как она должна работать и с чего начать???
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.03.2011, 12:55
Привет! Вот еще темы с ответами:

Написать функцию, которая возвращает слово в строке, которое короче всех - C++
Задание: Написать функцию, которая возвращает слово в строке, которое короче всех. Заголовок функции: char * mostlyWord (const char * s );...

Написать функцию для подсчета нецифровых символов в строке - C++
Подскажите пожалуйста, как написать функцию для подсчета нецифровых символов в строке. Сам не могу догадаться как учесть все нецифровые...

Написать функцию замены всех русских символов в строке пробелами - C++
Написать функцию замены всех русских символов в строке пробелами. Ввести и обработать две смешанные строки. Буду признателен за помощь.

Написать функцию замены всех русских символов в строке пробелами - C++
Нужно было написать функцию замены всех русских символов в строке пробелами. Написал, но использовал не свою функцию, а стороннюю. Сказали...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
20.03.2011, 12:55
Ответ Создать тему
Опции темы

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