Тема: записи
Допоможіть!!
як функція (наприклад: strchr, strcspn, strrchr ...) дозволяє вивести список слів, які починаються з певної літери.
Літера задається з клавіатури.
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → C++ → записи
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися
Допоможіть!!
як функція (наприклад: strchr, strcspn, strrchr ...) дозволяє вивести список слів, які починаються з певної літери.
Літера задається з клавіатури.
Є масив слів.
Потрібно вивести на екран  слова які починаються з певної букви.
Певну букву ввести з клавіатури.
Наприклад:
Масив слів - (допомога, вакансія, правила, реклама, ігри, повідомлення).
Вводим з клавіатури букву - "п".
І повинно вивести на екран слова - правила, повідомлення .
apolof можна відсортувати всі слова по алфавіту і тоді легко можна вивести всі слова по певній букві. Функцію я таку не знаю можливо є, а можливо ні
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";
    }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");
    }Аналогічна функція вводиться країна порівнює з записом в файлі і виводить фільм який належить цій країні
Ну ось я написав нову можливо ця підійде, приймає два параметри я в коментаріях написав які думаю ви розберетеся  
#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;
}Є масив слів.
Потрібно вивести на екран слова які починаються з певної букви.
Певну букву ввести з клавіатури.Наприклад:
Масив слів - (допомога, вакансія, правила, реклама, ігри, повідомлення).Вводим з клавіатури букву - "п".
І повинно вивести на екран слова - правила, повідомлення .
А до чого тут функції? Чи ви їх просто так в питання вставили?
Якщо це завдання - то де ваша спроба його розв'язати?
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");
    }моя спроба!
Тобто вам треба порівнювати не по літері, а по початку слова, я правильно зрозумів?
if ( strncmp( country, shop[ i ].film, strlen( country ) ) == 0 ) ...strncmp порівнює перші n (третій параметр) символів двох рядків. І краще порівнювати результат з нулем, тут результат не булівський... хоча, звісно, працює і так.
так 
літера введена з клавіатури якщо співпавдає з першою літерою слова повинно вивести на екран
Так літера чи рядок? Літера - це 
char letter;
scanf( "%c", &letter );або просто
char letter = getchar();Ну а як взяти першу літеру слова і порівняти її з введеним значенням - тут і самі здогадаєтеся, сподіваюсь.
дякую
пряцює якщо рядок; 
printf("  Літера :"); scanf("%s", lit); 
Не працює якщо
char letter;
scanf( "%c", &letter );Не працює
То увімкніть комп'ютер, без цього не запрацює.
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися