Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.62/26: Рейтинг темы: голосов - 26, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 03.12.2010
Сообщений: 44

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

25.10.2011, 12:45. Показов 5764. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru