![]() |
Здравствуйте и добро от Соединенных Штатов UNIX и Linux Форумы! Благодарим Вас за посещение и вступления нашей мирового сообщества.
|
|
Google unix.com
|
|||||||
| Форумы | Регистрация | Правила форума | Ссылки | Альбомы | ЧАВО | Список участников | Календарь | Поиск | Сегодняшние сообщения | Отметить форумы читать |
| Программирования высокого уровня Почтовые вопросы о C, C + +, Java, SQL и других языках программирования здесь. |
Подробнее UNIX и Linux Темы форума можно найти полезные
|
||||
| Нить | Резьба для начинающих | Форум | Ответы | Последнее сообщение |
| каким образом можно искать строки в один текстовый файл и заменить всю строку в другой файл | kkraja | UNIX для чайников Вопросы И Ответы | 6 | 08-06-2008 08:23 AM |
| Поиск строки текста и добавьте после строки | kesu2k | Shell программирование и сценарии | 8 | 07-18-2008 08:35 PM |
| Строка поиска | itik | AIX | 2 | 01-28-2008 07:01 PM |
| Perl: Поиск строки в строку поиска и замены текста | Crypto | Shell программирование и сценарии | 4 | 01-04-2008 10:24 AM |
| добавить строку в текстовый файл, основанные на поиске строки | malaymaru | Shell программирование и сценарии | 1 | 06-09-2006 09:53 AM |
![]() |
|
|
LinkBack | Резьба Инструменты | Искать в этом Thread | Оценить Thread | Режимы дисплея |
|
|
|
||||
|
Поиск строки в виде текстового файла в C
Здравствуйте,
Мне нужна помощь с программой я кодирования на C. Какова моя программа должна делать это строка поиска в виде текстового файла, если он находит совпадение, печатать строку на стандартный вывод. Этот файл выглядит следующим образом: 000001 Калифорнии 100000 Техас 011110 Огайо 010101 Вашингтон Таким образом, если программа обнаружит совпадение, выводит "100000 Техас" на стандартный вывод. Не могли бы вы мне помочь? Прошу прощения мой бедный английский. |
|
||||
|
Код:
/* srch.c usage: srch filename "string to find"
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main(int argc, char **argv)
{
FILE *fp=fopen(argv[1],"r");
char tmp[256]={0x0};
while(fp!=NULL && fget(tmp, sizeof(tmp), fp)!=NULL)
{
if (strstr(tmp, argv[2])
printf("%s", tmp);
}
if(fp!=NULL) fclose(fp);
return 0;
}
|
|
||||
|
Спасибо!!!, Спасибо человеку, ... Спасибо ...
Я исправить 'fgets' и' если 'функции ... Код:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main(int argc, char **argv)
{
FILE *fp=fopen(argv[1],"r");
char tmp[256]={0x0};
while(fp!=NULL && fgets(tmp, sizeof(tmp),fp)!=NULL)
{
if (strstr(tmp, argv[2]))
printf("%s", tmp);
}
if(fp!=NULL) fclose(fp);
return 0;
}
|
|
||||
|
Я не печатать - в два раза.
|
|
||||
|
Я знаю
![]() |
|
||||
|
Не это не когда в строку поиска пересекает два 'TMP' блок?
|
|
||||
|
Нет поиска строковый, fgets становится одной строке за раз. TMP [256] можно прочитать в целых 255 символов. Нет строки в примере текста больше, чем 40. Нет вопроса.
По общему решению, использованию TMP [LINE_MAX], где LINE_MAX определяется в limits.h Большинство UNIX средствами ограничить размер строки в любой LINE_MAX для вашей системы. |
![]() |
| Закладки |
| Резьба Инструменты | Искать в этом Thread |
| Режимы дисплея | Оценить эту ветку |
|
|