Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/34: Рейтинг темы: голосов - 34, средняя оценка - 4.53
0 / 0 / 0
Регистрация: 07.10.2016
Сообщений: 4
1

Вывести слова начинающиеся с заданной буквы

15.10.2016, 14:48. Показов 6557. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ввести строку и букву, вывести только слова, начинающиеся с заданной буквы.
Помогите написать примитивным языком лабу.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.10.2016, 14:48
Ответы с готовыми решениями:

Вывести слова начинающиеся с заданной буквы
Ввести строку и букву, вывести только слова, начинающиеся с заданной буквы. #include <stdio.h>...

Найти слова, начинающиеся с гласной буквы, вывести на экран монитора искомые слова и их количество
Здравствуйте! Помогите пожалуйста написать программу на СИ:Дан массив строк размером N×M (N=5,...

Записать в выходной файл все слова начинающиеся с буквы заданной пользователем
Здравствуйте дорогие форумчане! Есть вот такое задание на языке С. Нужно разработать программу...

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

8
Модератор
Эксперт С++
13703 / 10906 / 6473
Регистрация: 18.12.2011
Сообщений: 29,115
15.10.2016, 17:14 2
Дана строка символов до точки. Удалить из нее все слова, начинающиеся с буквы «а»
0
1496 / 908 / 255
Регистрация: 30.06.2015
Сообщений: 4,781
Записей в блоге: 54
16.10.2016, 17:28 3
Цитата Сообщение от Doccer56 Посмотреть сообщение
Ввести строку и букву, вывести только слова, начинающиеся с заданной буквы.
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
#include <stdio.h>
#include <ctype.h>
#define N 255
int main(void)
{
int i, b, j=0, c;
    char str[N];
    printf("Enter string: \n");
    fgets(str, N, stdin);
    printf("Enter letter: \n");
    c = getc(stdin);
    for(i = 0; str[i]; ++i)
    {
        if(str[i]== c)
        {
            if(i == 0 || ispunct(str[i-1]) || isblank(str[i-1]))
            {
                b=i;
                while(str[b]!='\n' && !ispunct(str[b]) && !isblank(str[b]))++b;
                for(j=i; j!=b; ++j)printf("%c", str[j]);
                putchar(' ');
            }
            i=j;
        }
    }
return 0;
}
1
1786 / 1036 / 445
Регистрация: 12.05.2016
Сообщений: 2,550
16.10.2016, 18:17 4
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <string.h>
 
#define DELIM ",.-;:!? \t\n"
 
int main(void) {
    char * ptr, buf[BUFSIZ];
    printf("String: ");
    if (!fgets(buf, BUFSIZ, stdin) || *buf=='\n') 
        return -1;
    printf("Letter: ");
    char c = getchar();
    for ( ptr = strtok(buf, DELIM); ptr; ptr = strtok(NULL, DELIM) )
        if ( *ptr == c )
            printf("%s\n", ptr);
    
    return 0;
}
0
1496 / 908 / 255
Регистрация: 30.06.2015
Сообщений: 4,781
Записей в блоге: 54
16.10.2016, 18:32 5
Ага, если строку не жалко.
0
easybudda
16.10.2016, 22:30
  #6

Не по теме:

Цитата Сообщение от CoderHuligan Посмотреть сообщение
Ага, если строку не жалко.
А чего её жалеть? Если речь о словах, то вполне естественно делить строку на слова. Ну сдублировать её можно, если дорога, как память...

0
1496 / 908 / 255
Регистрация: 30.06.2015
Сообщений: 4,781
Записей в блоге: 54
17.10.2016, 12:21 7
Цитата Сообщение от easybudda Посмотреть сообщение
А чего её жалеть? Если речь о словах, то вполне естественно делить строку на слова. Ну сдублировать её можно, если дорога, как память...

Не по теме:


Думаю, потому, что функция strtok, как известно, предназначена для выделения всех лексем в строке. А по определению, слово "лексема" означает - "Лексе́ма в лингвистике — слово как абстрактная единица морфологического анализа. В одну лексему объединяются разные парадигматические формы (словоформы) одного слова." Тэкс.
Таким образом данная функция разделяет строку на ВСЕ лексемы - токены.
А по условию, например, нашей, конкретной задачи, нужно выделить лишь, скорее всего, неизвестное количество токенов, а не все токены разом. При большом, например файле, такой избыточной работы попросту не требуется, иначе это привело бы к большим тормозам, а в добавок к этому - и возможное дублирование строки.
То есть данную функцию, по моему, надо применять там, где ей место, а не пытаться с её помощью эмулировать решения всех возможных задач на строки.

0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12832 / 7569 / 1764
Регистрация: 25.07.2009
Сообщений: 13,961
17.10.2016, 12:51 8
Цитата Сообщение от CoderHuligan Посмотреть сообщение
То есть данную функцию, по моему, надо применять там, где ей место, а не пытаться с её помощью эмулировать решения всех возможных задач на строки.
Вот здесь ей по-моему самое место. Для большого входного файла и решение другое было бы. А для строки самое то.
0
1496 / 908 / 255
Регистрация: 30.06.2015
Сообщений: 4,781
Записей в блоге: 54
17.10.2016, 13:02 9
Цитата Сообщение от easybudda Посмотреть сообщение
А для строки самое то.
А если в строку(массив) загнать, как это часто делают, файл целиком?
Но, согласен, что для небольших строк можно и(легче) так.
0
17.10.2016, 13:02
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.10.2016, 13:02
Помогаю со студенческими работами здесь

Вывести на экран слова текста, начинающиеся и оканчивающиеся на гласные буквы
ПОМОГИТЕ пожайлусто ПЕРЕДЕЛАТЬ прогрммку=) СРОЧНО выручите=( надо чтобы: Написать программу,...

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

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

Вывести слова строки, начинающиеся и заканчивающиеся одной и той же буквой, которые содержат три буквы К
Помогите пожалуйста,сделал первую часть кода,на проверку начала и конца,а как объединить еще и с...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru