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

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

25.10.2011, 12:45. Показов 5646. Ответов 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
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru