1

Тема: записи

Допоможіть!!
як функція (наприклад: strchr, strcspn, strrchr ...) дозволяє вивести список слів, які починаються з певної літери.
Літера задається з клавіатури.

2

Re: записи

Абсолютно некоректне питання. Спробуйте переформулювати.

3 Востаннє редагувалося apolof (08.11.2014 23:55:52)

Re: записи

Є масив слів.
Потрібно вивести на екран  слова які починаються з певної букви.
Певну букву ввести з клавіатури.

Наприклад:
Масив слів - (допомога, вакансія, правила, реклама, ігри, повідомлення).

Вводим з клавіатури букву - "п".

І повинно вивести на екран слова - правила, повідомлення .

4 Востаннє редагувалося Betterthanyou (09.11.2014 00:20:19)

Re: записи

apolof можна відсортувати всі слова по алфавіту і тоді легко можна вивести всі слова по певній букві. Функцію я таку не знаю можливо є, а можливо ні

Подякували: apolof1

5 Востаннє редагувалося Betterthanyou (09.11.2014 00:27:22)

Re: записи

http://replace.org.ua/topic/3567/ тут є схоже питання я таку функцію вже писав якщо вам потрібно можете переробить для себе (але краще написати з наново), вона шукає точно такий район який введений в region

void СountingpAplications()
    {
        char region[250];
        cout << "Введіть назву району ->";
        cin >> region;
        int count = 0;
        for (int i = 0; i < sizecl; i++)
            if (stricmp(clients[i].district, region) == 0)
                count++;
        cout << "Район зустрічається " << count << " разів\n";
    }

6 Востаннє редагувалося apolof (09.11.2014 00:33:49)

Re: записи

Betterthanyou написав:

http://replace.org.ua/topic/3567/ тут є схоже питання я таку функцію вже писав якщо вам потрібно можете переробить для себе (але краще написати з наново), вона шукає точно такий район який введений в region

void СountingpAplications()
    {
        char region[250];
        cout << "Введіть назву району ->";
        cin >> region;
        int count = 0;
        for (int i = 0; i < sizecl; i++)
            if (stricmp(clients[i].district, region) == 0)
                count++;
        cout << "Район зустрічається " << count << " разів\n";
    }

Дякую, але це зовсім інше

void film_list_country()
{
    int count = file_element(), exist = 0;
    char country[10];
    
    printf("  Країна :"); scanf("%s", country);

    for (int i = 0; i < count; i++) 
        if (!strcmp( country, shop[i].countrys)) exist++;
    
    if (exist == 0) {
        printf("Інформацію не знайдено!\n");
        return;
    }
    
    printf(" \n--Список фільмів, введеної країни;\n");
    printf(" +-----------------------+\n");
    printf(" |        Фільми         |\n");
    printf(" +-----------------------+\n");
    for (int i = 0; i < count; i++)
    {
        if (!strcmp(country, shop[i].countrys)) { printf(" | %-21s |\n", shop[i].film);}
    }
    printf(" +-----------------------+\n");
    }

Аналогічна функція вводиться країна порівнює з записом в файлі і виводить фільм який належить цій країні

7 Востаннє редагувалося Betterthanyou (09.11.2014 00:51:17)

Re: записи

Ну ось я написав нову можливо ця підійде, приймає два параметри я в коментаріях написав які думаю ви розберетеся 

#include <iostream>
using namespace std;

void Searching(char *str, char S)
{
    //str Масив символів
    //S Сивол по якому шукать
    char word[50];
    for (int i = 0, j = 0; i < strlen(str) + 1; i++)
    {
        if (str[i] != ' ' && strlen(str) != i)
            word[j++] = str[i],
            word[j] = '\0';
        else
        {
            if (word[0] == S)
                cout << word << endl;
            word[0] = '\0';
            j = 0;
        }
    }
    
}

int main()
{
    setlocale(LC_CTYPE, "");
    char str[100] = "допомога, вакансія, правила, реклама, ігри, повідомлення";
    Searching(str, 'п');
    system("pause");
    return 0;
}
Подякували: apolof1

8

Re: записи

apolof написав:

Є масив слів.
Потрібно вивести на екран  слова які починаються з певної букви.
Певну букву ввести з клавіатури.

Наприклад:
Масив слів - (допомога, вакансія, правила, реклама, ігри, повідомлення).

Вводим з клавіатури букву - "п".

І повинно вивести на екран слова - правила, повідомлення .

А до чого тут функції? Чи ви їх просто так в питання вставили?
Якщо це завдання - то де ваша спроба його розв'язати?

9 Востаннє редагувалося apolof (09.11.2014 14:06:26)

Re: записи

void film_list_film()
{
    int count = file_element(), exist = 0;
    char lit[10];
    
    printf("  Введіть літеру :"); scanf("%s", lit);
 
    for (int i = 0; i < count; i++) 
        if (!strcmp( lit, shop[i].film)) exist++;
    
    if (exist == 0) {
        printf("Інформацію не знайдено!\n");
        return;
    }
    
    printf(" \n--Список фільмів, введеної літери;\n");
    printf(" +-----------------------+\n");
    printf(" |        Фільми         |\n");
    printf(" +-----------------------+\n");
    for (int i = 0; i < count; i++)
    {
        if (!strcmp(lit, shop[i].film)) { printf(" | %-21s |\n", shop[i].film);}
    }
    printf(" +-----------------------+\n");
    }

моя спроба!

10

Re: записи

Тобто вам треба порівнювати не по літері, а по початку слова, я правильно зрозумів?

if ( strncmp( country, shop[ i ].film, strlen( country ) ) == 0 ) ...

strncmp порівнює перші n (третій параметр) символів двох рядків. І краще порівнювати результат з нулем, тут результат не булівський... хоча, звісно, працює і так.

Подякували: apolof1

11 Востаннє редагувалося apolof (09.11.2014 14:09:36)

Re: записи

так
літера введена з клавіатури якщо співпавдає з першою літерою слова повинно вивести на екран

12

Re: записи

Так літера чи рядок? Літера - це

char letter;
scanf( "%c", &letter );

або просто

char letter = getchar();

Ну а як взяти першу літеру слова і порівняти її з введеним значенням - тут і самі здогадаєтеся, сподіваюсь.

Подякували: apolof1

13

Re: записи

дякую

пряцює якщо рядок;

printf("  Літера :"); scanf("%s", lit); 

Не працює якщо

char letter;
scanf( "%c", &letter );

14

Re: записи

apolof написав:

Не працює

То увімкніть комп'ютер, без цього не запрацює.