|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » сравнение двух массивов строк в Си |
|
сравнение двух массивов строк в Си
|
Старожил Сообщения: 229 |
Профиль | Отправить PM | Цитировать
вообщем нужна программа для подготовки и сохранения в файле информации о маршрутиах городского транспорта.И программа которая должна формировать список маршрутов которые отправляются от заданного начального пункта в заданный конечный пункт.
Программу подготовки я написал. Использовал структуру : rasp{ char numb[10]; char vid[20]; char nach_punkt[15]; char kon_punkt[15]; char vremya[10]; }spisok[kol]; всё нормально сохраняется. вот текст второй программы для поиска нужной информации: # include <stdio.h> # include <stdlib.h> # define kol 20 struct rasp { char numb[10]; char vid[20]; char nach_punkt[15]; char kon_punkt[15]; char vremya[10]; }spisok[kol]; void init_list(void), load(void),list(void); int main(void) { char choice; char n[15]; char k[15]; int t; init_list(); load(); printf("Введите начальный пункт: "); gets(n); printf("Введите конечный пункт: "); gets(k); for(t=0;t<kol;++t) if(spisok[t].numb[0] && n[0] && k[0]) { if(spisok[t].nach_punkt==n && spisok[t].kon_punkt==k){ printf("%s\n",spisok[t].numb); printf("%s\n",spisok[t].vid); printf("%s\n",spisok[t].nach_punkt); printf("%s\n",spisok[t].kon_punkt); printf("%s\n",spisok[t].vremya);}} getch(); } void init_list(void) { register int t; for(t=0; t<kol; ++t) spisok[t].numb[0]='\0'; } void load(void) { FILE *fp; register int i; if((fp=fopen("bd","rb"))==NULL){ printf("Ошибка при открытии файла.\n"); return; } init_list(); for(i=0;i<kol;i++) if(fread(&spisok[i],sizeof(struct rasp),1,fp)!=1){ if(feof(fp)) break; printf("Ошибка при чтении файла.\n"); } fclose(fp); } if(spisok[t].nach_punkt[0]==n[0] && kon_punkt==k[0]) что то заклинило меня 8) не могу написать, чтобы строки сравнивал 8( |
|
Отправлено: 15:55, 01-05-2005 |
Старожил Сообщения: 401
|
Профиль | Отправить PM | Цитировать strcmpi пробовали?
или можно вложенный цикл - сравнивать кажный символ |
------- Отправлено: 17:13, 01-05-2005 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старый параноик Сообщения: 2423
|
Профиль | Отправить PM | Цитировать bool
В языках С и С++ сроки бывают нескольких видов. Классы мы рассматривать не будем, тем более, что у Вас используются как раз класссические zero-terminated строки. В этом случае строкой называется массив символов, оканчивающийся байтом 0x00, т.е. нулём. Строки в таком слачае сравнивают побайтовым сравнением символов такого массива. Строки равны, если попарно равны все символы массивов. Почитайте про strcmp и разновидности (strncmp). Кроме того. в Вашем случае стоит не забыть и приведение символов обеих строк к верхнему (нижнему) регистру, потому что с точки зрения strcmp символ 'A' не равен 'a' |
Отправлено: 00:29, 02-05-2005 | #3 |
Старожил Сообщения: 229
|
Профиль | Отправить PM | Цитировать aESThete hasherfrog
огромное спасибо 8) я только в стадии изучении Си, до этих функций ещё не дошёл 8)))) вообщем выручили , спасибо!! |
Отправлено: 18:52, 02-05-2005 | #4 |
Ветеран Сообщения: 1180
|
Профиль | Отправить PM | Цитировать Вообще-то это классическая задача для SQL-сервера. Может перераспределить усилия? Если это не курсовой, а, скажем, реальная вещь, может поделитесь результатом? А то по атласу как-то муторно искать...
|
|
Отправлено: 13:55, 04-05-2005 | #5 |
Старожил Сообщения: 401
|
Профиль | Отправить PM | Цитировать to bool
Цитата:
поделитесь успехами, интересно, что в конце концов получится pva я так понял, судя по реализации на "голом" Cи, что это именно учебное задание |
|
------- Отправлено: 17:04, 04-05-2005 | #6 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
HDD - Сравнение двух HDD и выбор лучшего (ST320413A vs ST310220A) | J7BXA | Накопители (SSD, HDD, USB Flash) | 1 | 24-06-2009 09:17 | |
Сравнение производительности двух ОС | Dabaduch | Хочу все знать | 3 | 13-06-2009 19:27 | |
Сравнение двух процов | Rozmen | Хочу все знать | 4 | 03-08-2008 12:35 | |
сравнение двух ноутбучных видеокарт X1700 и x2500 | Sparkster | Видеокарты | 1 | 14-03-2008 13:07 | |
Сравнение строк в PHP | Dutchman Mihel | Вебмастеру | 8 | 06-07-2004 13:04 |
|