![]() |
Hei og Velkommen fra USA til UNIX og Linux Forums! Takk for besøket og Delta i vårt globale samfunn.
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Rules | Lenker | Album | FAQ | Medlemsliste | Kalender | Søke | Dagens innlegg | Marker forumene som lest |
| High Level Programmering Post spørsmål om C, C + +, Java, SQL og andre programmeringsspråk her. |
Mer UNIX og Linux Forum Emner Du kan finne nyttig
|
||||
| Tråd | Tråd startet | Forum | Svar | Siste innlegg |
| hvordan kan søke etter en streng i en tekstfil og erstatte hele linjen i en annen fil | kkraja | UNIX for Dummies Spørsmål og svar | 6 | 08-06-2008 07:23 |
| Søk en streng og legge til tekst etter streng | kesu2k | Shell programmering og Skripting | 8 | 07-18-2008 07:35 |
| søk tekststreng | itik | AIX | 2 | 01-28-2008 07:01 |
| Perl: Søk etter streng på linje deretter søke og erstatte tekst | Crypto | Shell programmering og Skripting | 4 | 01-04-2008 10:24 |
| legger strengen tekstfil basert på søkestrengen | malaymaru | Shell programmering og Skripting | 1 | 06-09-2006 08:53 |
![]() |
|
|
LinkBack | Thread Tools | Søk i denne tråden | Rate Thread | Visningsmoduser |
|
|
|
||||
|
Søk en streng i en tekstfil på C
Hallo,
Jeg trenger hjelp med et program jeg koding i C. Hva mitt program har å gjøre er å søke en streng i en tekstfil, hvis den finner et samsvar, print strengen til stdout. Filen ser slik ut: 000.001 California 100.000 Texas 011.110 Ohio 010.101 Washington Så hvis programmet finner en match, prints "100.000 Texas" til stdout. Kan du hjelpe meg? Unnskyld min dårlige engelsk. |
|
||||
|
Code:
/* 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;
}
|
|
||||
|
Takk! Takk mann, ... Takk ...
Jeg korrigert 'fgets "og" hvis "-funksjoner ... Code:
#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;
}
|
|
||||
|
Ingen søket line-by-line, fgets får en linje av gangen. tmp [256] kan lese i så mange som 255 tegn. Ingen linje i eksempelet er lengre enn 40 år. Ingen problem.
Som en generell løsning, bruk tmp [LINE_MAX] der LINE_MAX er definert i limits.h De fleste UNIX verktøy grensen linje størrelsen til det LINE_MAX er for systemet. |
![]() |
| Hugseliste |
| Thread Tools | Søk i denne tråden |
| Visningsmoduser | Ranger denne tråden |
|
|