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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ массивы http://www.cyberforum.ru/cpp-beginners/thread195100.html
Вывести на экран номера всех нечетных элементов
C++ Матрицы В целочисленной квадратной матрице a = a для всех допустимых i и j. Требуется определить: – максимальный элемент в тех столбцах, которые не содержат положительных элементов; – минимум среди средних значений элементов диагоналей, параллельных побочной диагонали матрицы. http://www.cyberforum.ru/cpp-beginners/thread195099.html
Ввести строку и два слова, заменить все вхождения первого слова на второе C++
Возможно ли создание такой программы: Ввести строку и два слова, заменить все вхождения первого слова на второе.
У гусей и кроликов вместе 64 лапы.Сколько может быть кроликов и гусей C++
У гусей и кроликов вместе 64 лапы.Сколько может быть кроликов и гусей(указать все возможные сочетания) мне надо решить её через оператор цикла с постусловием. Вот собственно она,но проблема в том что она выводит еще лишние значения,мне надо как то сделать g типо четным,а как это сделать???? не получается((( #include<iostream.h> #include<conio.h> void main () { int g,k; clrscr (); g=0; ...
C++ Сумма цифр натурального числа http://www.cyberforum.ru/cpp-beginners/thread195079.html
Рассмотрим произвольное натуральное число и найдём сумму его цифр,затем сумму цифр полученного числа и так далее, пока не получиться однозначное число. Это числа назовём числовым корнем. Например возьмём число 1234567. Сумма его цифр равна 28. Сумма цифр полученного числа равна 10. Дальше сумма равна 1. Помогите написать такую программу...
C++ Вывести на экран в алфавитном порядке все символы которые входят в массив по одному разу Срочно нужна программа... Вот условие... Задан массив из k символов латинского алфавита. Вывести на экран в алфавитном порядке все символы которые входят в этот массив по одному разу. Заранее благодарен. подробнее

Показать сообщение отдельно
МаксимМВ
C/C++
90 / 90 / 5
Регистрация: 01.07.2010
Сообщений: 281
22.11.2010, 14:29     Написать функцию, находящую в строке символов симметричное слово.
Вот прога:
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. Защита от переполнения буффера есть. Ищет только английские слова! Это в Линуксе. Не знаю как в винде. Откомпилировал и отладил.
 
Текущее время: 05:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru