Тема: записи
Допоможіть!!
як функція (наприклад: 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
Для відправлення відповіді ви повинні увійти або зареєструватися