0 / 0 / 0
Регистрация: 03.12.2010
Сообщений: 44

В символьной строке удалить все слова, состоящие из нечетного количества букв.

25.10.2011, 12:45. Показов 6151. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет.
Нужна ваша помощь в написании проги на С. Не на С++ =)
Ниже приведено условие:
В символьной строке удалить все слова, состоящие из нечетного количества букв.
Всем "+" за помощь=) Спасибо.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.10.2011, 12:45
Ответы с готовыми решениями:

В символьной строке удалить все слова, состоящие из N - букв - C++
Помогите пожалуйста не могу написать программу через string.

В символьной строке удалить все слова, состоящие более чем из N букв
Не использовать дефолтные функции работы со строками (например strstr, strlen) -В символьной строке удалить все слова, состоящие более...

В символьной строке удалить все слова, состоящие более чем из N - букв
Напихал все что можно, не работает. Программирования не знаю похоже):wall: #include <iostream> // огранизация ввод/вывод ...

26
27.10.2011, 09:40
Студворк — интернет-сервис помощи студентам

Не по теме:

Цитата Сообщение от accept Посмотреть сообщение
я просто могу это представить
- нет не можешь, скомпилируй в Release оттестируй а потом пиши...
PS:Есть поговорка - кто старое помянет тому глаз вон...
Устал от тебя и реагировать не хочу, холиворбь сам с собой

0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
27.10.2011, 10:04
dander, ниже простая Си реализация твоего алгоритма + готовый проект в архиве, разархивируй папку проекта и открой студией dsw файл, мастер конвертирования сам всё преобразует. Если захочешь без мастера открой срр-ник и выбери меню BuildProject так студия сама всё достроит что надо. Новый проект НЕ ДЕЛАЙ, т.к. есть большая доля вероятности что при создании указываешь или CLI или API или ещё что-то но только не Console Aplication
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 <stdio.h> //printf scanf
#include <string.h>//strtok
 
int main()
{
    char chr, str[1024];
    char buf[1026];//Буффер строки str
    char delim[] = " ,.!?";//Возможные разделители между словами
    printf("Enter sentence\n");
    scanf("%[^\n]%c",str,&chr);
    //Выделяем из строки токены (слова)
    //части ограниченные символами из delim
    char * tok = strtok(str,delim);//Выделили 1-е слово
    if(tok)
    {
        buf[0] = '\0';
        while(tok)
        {
            if(strlen(tok) % 2 == 0)
            {
                strcat(buf,tok);//Добавляем в buf слово
                strcat(buf," ");//Добавляем в buf пробел
            }
            //Продолжаем выделять из строки слова
            tok = strtok(NULL,delim);
        }
        printf("String after removing not odd words\n");
        printf("%s\n",strcpy(str,buf));
    }
    else
        printf("String not contain words or empty\n");
    printf("Press any key to continue\n");
    scanf("%c",&chr);
    return 0;
}
Миниатюры
В символьной строке удалить все слова, состоящие из нечетного количества букв.  
Вложения
Тип файла: rar RemNoOdd.proj.rar (1.9 Кб, 14 просмотров)
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
27.10.2011, 10:14
В заключение, выкладываю скрин и готовой проект на основе кода из поста 3
дабы глубокоуважаемый мною господин accept, ещё раз убедился в своих заблуждениях
PS:dander, как и в предыдущем посте, привожу уже готовый архив с проектом и скрин, а также лог Release надеюсь, сможешь почувствовать разницу между обрезанием знаков strtok и их наличие после работы по моему алгоритму, на сим для себя считаю топик полностью исчерпанным!

лог Release
--------------------Configuration: RemNoOdd2 - Win32 Release--------------------
Compiling...
RemNoOdd2.cpp
Linking...

RemNoOdd2.exe - 0 error(s), 0 warning(s)
Миниатюры
В символьной строке удалить все слова, состоящие из нечетного количества букв.  
Вложения
Тип файла: rar RemNoOdd2.rar (2.2 Кб, 11 просмотров)
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
08.11.2011, 13:21

Не по теме:

dander, ответил в личку - хотите без буффера - используйте 3-й пост:pardon:
PS:В 22-м посте и так всё прокомменчено - подробней я не умею, как по мне и так всё понятно...



Добавлено через 15 минут
dander, вобщем если у вас слова идут ровно через пробел и нету знаков препинаний, то посмотрите сюда Найти самое короткое из слов в предложении
лишь чуточку доработаете под ваш вариант и всё
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
08.11.2011, 14:30
dander, вот Ваш алгоритм в простом исполнении - проще уже никак
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
#include <stdio.h>
#include <conio.h>
 
int main()
{
    long i,j,pos;//pos - позиция в строке начала слова
    long wLen = 0;//Будет содержать в себе длинну текущего слова
    char str[1024] = {0};//исходная строка
    printf("\tEnter input string\n");
    //В Си строку с пробелами по другому думаю и не ввести!
    scanf("%[^\n]",str);//В str то что ввели в chr - '\n' от ввода
    char word[32] = {0};
    printf("\tSee steps of removing\n");
    //Да так бесконечный for - выходим из него здесь
    //if(str[i] == '\0')
    //      break;
    //так надо!
    for(i = 0,pos = 0; /*str[i] != '\0'*/true;i++)
    {
        //Парсим пробел, окончание строки и знаки препинания
        if(str[i] == ' ' || str[i] == '\0' ||
           str[i] == '.' || str[i] == ','  ||
           str[i] == '!' || str[i] == '?'  || 
           str[i] == ';' || str[i] == '-' )
        {
            //Нечётное слово
            if(wLen % 2 != 0)
            {
                  //Удаляем word из str
                  for(j = 0; str[pos + wLen + j] != '\0'; j++)
                      str[pos + j] = str[pos + wLen + j];
                  if(j == 0)//word было последним в str
                      str[pos - 1] = '\0';
                  else
                      str[pos + j] = '\0';
                  printf("%s\n",str);
            }
            wLen = 0;
            pos  = i + 1;
        }
        else
            wLen++;
        //Нужно чтобы алгоритм отрабатывал для последнего слова
        if(str[i] == '\0')
            break;
    }
    printf("String after removing NoOddWords:\n %s\n",str);
    printf("Press any key to continue\n");
    getch();
    return 0;
}
Миниатюры
В символьной строке удалить все слова, состоящие из нечетного количества букв.  
0
08.11.2011, 15:35
Лучший ответ Сообщение было отмечено как решение

Решение

Не по теме:

Берег Темзы, 7 утра, спортивного телосложения англичанин отжимается от скамейки. Подходит полицмен:
- Сэр, простите, что вмешиваюсь, но по-моему ваша дама уже ушла...

1
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
08.11.2011, 15:43

Не по теме:

Гыы да тут конкурс острот :)
- Вчера набрался смелости и поцеловал Юльку.
- А она мне: "И что бы это значило?"
- А я возьми и ляпни с дуру: "Запрос на авторизацию"
- Сказала, чтоб в субботу приходил к ней логиниться..



Добавлено через 2 минуты

Не по теме:

PS:Оживлением топика послужило
Сегодня, 10:23
dander
юра здравствуйте. это снова я..=) [ в строке удалить слова с нечетным количеством букв]при сдаче лабы препод указал на то что мы не должны использовать дополнительных строк.(я показывалл последний код программы, который в архиве) не могли бы Вы мне снова помочь. пробовал сам сделать, не понял, к сожалению.
Сегодня, 10:56
dander
Сообщение от -=ЮрА=-
Привет - дай ссылку с каким именно кодом работаешь???Что от меня требуется когда буду анализировать код - комментарии???
В символьной строке удалить все слова, состоящие из нечетного количества букв.
архив RemNoOdd.proj.rar да комментарии..

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.11.2011, 15:43

В символьной строке удалить все слова, состоящие из нечетного количества букв
Ребят помогите, не могу понять. Нужно, чтобы мусор не удаляло, а оставляло. Мусором считатется(*?^$#) такие символы #include...

В символьной строке удалить все слова, состоящие более чем из N букв
Привет. Нужна помощь. Условие-В символьной строке удалить все слова, состоящие более чем из N букв. Код работает немного криво,в...

В символьной строке сосчитать число слов, состоящих из нечётного количества букв
Пожалуйста,помогите с программой.Нужно в символьной строке сосчитать число слов, состоящих из нечётного количества букв.Сделал программу,но...

Нужно в строке удалить слова, состоящие из букв заданного слова
Задание такое: вводится слово и строка (отдельно). Нужно в строке удалить слова, состоящие из букв заданного слова, а остальные слова...

Напечатать все слова, состоящие из одинакового количества букв и цифр
напечатать все слова состоящие из одинакового количества букв и цифр


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

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Опции темы

Новые блоги и статьи
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru