Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.04.2010, 13:08   #1
Terror
Новичок
Джуниор
 
Регистрация: 22.12.2009
Сообщений: 2
По умолчанию Найти слова с четным кол-вом символов. Си.

Дописать программу на Си.
Ввести некоторый текст состоящий из слов разделенных пробелами. НАЙТИ СЛОВА С ЧЕТНЫМ КОЛИЧЕСТВОМ СИМВОЛОВ и заменить в них окончания слов "cdi" на "ab".
В чем не нужна помощь: " НАЙТИ СЛОВА С ЧЕТНЫМ КОЛИЧЕСТВОМ СИМВОЛОВ"
Код:
#include <stdio.h>
#include <conio.h>
#include <string.h>
main ()
{
     char c, s1[500];
     char s2[] = "cdi";
     int i = 0;
     puts ("Vvidite tekst:\n");
     gets ( s1 );
    
     printf ("%s%s\n%s%s\n\n%s\n%s%s\n",
     "Tekst: ", s1, "Olonchanie: ", s2,
     "Slova s okonchaniem 'cdi': ",
     strstr(s1, s2));
    
     while (s1[i] !='\n')
     {
           if (s1[i] == 'c') 
           s1[i] = 'a';
           i++;
           
           if (s1[i] == 'd')
           s1[i] = 'b';
           i++;
           
           if (s1[i] == 'i')
           s1[i] =' ';
           i++;
           
           }
           
     printf ("rezultat:");
     puts (s1);
     getch();
     }
Спасибо.
Terror вне форума Ответить с цитированием
Старый 28.04.2010, 14:12   #2
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Посимвольно проходите строку, находите пробел. Если следующий символ - опять пробел - переходите к нему, если нет - идете по слову, считая символы пока опять не встретите пробел. Дальше - n % 2 (остаток от деления на 2). Если последние три символа - cdi - меняете их на ab.
Кстати, и тут у вас ошибка: что если слово заканчивается на cdk? Или на ccc? Сначала проверяйте три символа подряд на cdi (или сравнивайте подстроку из них с помощью strcat), а потом уже меняйте cd на ab, а потом сдвигайте строку на один символ влево начиная со следующего после i - так чтобы этот следующий (пробел, ограничивший слово) оказался на месте i.
Дерзайте!
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 28.04.2010, 16:50   #3
Terror
Новичок
Джуниор
 
Регистрация: 22.12.2009
Сообщений: 2
По умолчанию

Ого, спасибо буду разбираться, а мой код совсем не идет?
Terror вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти кол-во целых чисел в первой последовательности и кол-во нечетных во второй. DjDeniels-61 Помощь студентам 7 28.06.2009 13:04
Помогите найти строку с наибольшим кол-вом отриц. эл-ов Danil21 Общие вопросы C/C++ 1 21.06.2009 11:54
Найти и вывести на экран группы с четным количеством символов. задачи Си. Kventin Помощь студентам 13 29.12.2008 16:29
Как работать с очень большим кол-вом чисел?? Umnik1 Общие вопросы Delphi 16 25.11.2008 19:22
поиск кратчайшей сортировки, с минимальным кол-вом перестановок sad8c Помощь студентам 9 14.12.2007 10:23