|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
05.11.2022, 22:09 | #1 |
Пользователь
Регистрация: 09.10.2022
Сообщений: 12
|
Символьные строки в СИ
Здравствуйте, суть программы следующая:В файле хранится список поездов в виде: Пункт_отправления—
Пункт_назначения (например, Москва—Сочи). Количество записей не ограничено. Определить, сколько поездов идут до заданного пункта. Вывести их на экран. Я разобрался с выводом пункта отправления и прибытия, но не понимаю что означает условие "сколько поездов идут до заданного пункта" Буду благодарен, если поможете разобраться ! |
05.11.2022, 22:15 | #2 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
|
05.11.2022, 22:38 | #3 |
Пользователь
Регистрация: 09.10.2022
Сообщений: 12
|
p51x, Спасибо, дайте, пожалуйста, наводку как можно написать условие, что поезд доедет до Сочи
|
05.11.2022, 23:14 | #4 | |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
Цитата:
|
|
06.11.2022, 10:11 | #5 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
Вам надо для каждой записи проделать следующее: найти в записи разделитель '—'; все что до разделителя будет пункт отправления; после - пункт прибытия; сравнить все что после разделителя со словом 'Сочи' и посчитать количество совпадений.
|
08.11.2022, 14:16 | #6 |
Пользователь
Регистрация: 09.10.2022
Сообщений: 12
|
macomics,
int main () { char Temp[80], *Tempf, *Temp1; char s[80]; char c[80]; char Znak []="-"; int i, k=0, l = 0; FILE *in = fopen("символьные строчки.txt","r"); system("chcp 1251 > nul"); if (in == NULL) { printf("\n Файл не открыт"); exit(1); } printf ("\nВведите пункт прибытия:\n"); gets(Temp); Temp1 = strcat(Temp, "\n"); while (fgets(s, 80, in) != NULL) { Tempf = strchr (s, '-'); if (Tempf != NULL) { Tempf = Tempf + 2; if (strcmp(Temp1, Tempf) == 0) { k++; puts(s); } } } fclose(in); printf ("До Сочи едут %d", k); } Что означает Tempf = Tempf + 2; |
08.11.2022, 18:18 | #7 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
Я убрал несколько лишних строк и прокомментировал цикл
Код:
ADD: У вас было Tempf = Tempf + 2, возможно, потому, что в строке были пробелы. Но в примере на форуме вы указали пункты прибытия и назначения через дефис и без пробелов, поэтому я исправил на 1. Последний раз редактировалось macomics; 08.11.2022 в 18:22. |
09.11.2022, 15:48 | #8 |
Пользователь
Регистрация: 09.10.2022
Сообщений: 12
|
macomics, Спасибо Вам огромное, очень помогли, особенно с комментариями
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Си, символьные строки | Artemii21 | Помощь студентам | 7 | 04.04.2020 23:38 |
Символьные строки | andriy1048 | Помощь студентам | 5 | 30.06.2015 16:27 |
Символьные строки в Си | Вероника99 | Помощь студентам | 2 | 16.12.2013 21:12 |
Символьные строки. Си. | meta | Помощь студентам | 2 | 24.05.2011 16:40 |
Символьные строки | Арнис | Общие вопросы C/C++ | 1 | 13.07.2010 14:04 |