The UNIX and Linux Forums  
Hei og Velkommen fra USA til UNIX og Linux Forums! Takk for besøket og Delta i vårt globale samfunn.

Go Back   UNIX og Linux Forums > Top Forums > High Level Programmering
.
google unix.com



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

Reply
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Søk i denne tråden Rate Thread Visningsmoduser
  #1 (permalink)  
Old 04-16-2009
Zykl0n-B Zykl0n-B is offline
Registrert bruker
  
 

Bli Dato: Aug 2008
Innlegg: 25
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.
  #2 (permalink)  
Old 04-16-2009
Jim McNamara jim mcnamara is offline Forum Staff  
...@...
  
 

Bli Date: Feb 2004
Beliggenhet: NM
Innlegg: 5749
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;
}
  #3 (permalink)  
Old 04-16-2009
Zykl0n-B Zykl0n-B is offline
Registrert bruker
  
 

Bli Dato: Aug 2008
Innlegg: 25
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;
}
  #4 (permalink)  
Old 04-17-2009
Jim McNamara jim mcnamara is offline Forum Staff  
...@...
  
 

Bli Date: Feb 2004
Beliggenhet: NM
Innlegg: 5749
Jeg mislyktes skrive - to ganger.
  #5 (permalink)  
Old 04-17-2009
Zykl0n-B Zykl0n-B is offline
Registrert bruker
  
 

Bli Dato: Aug 2008
Innlegg: 25
Jeg vet
  #6 (permalink)  
Old 07-02-2009
c0d1f1ed c0d1f1ed is offline
Registrert bruker
  
 

Bli Dato: juli 2009
Innlegg: 2
Vil ikke dette mislykkes når søkestrengen krysser to 'tmp' blokk?
  #7 (permalink)  
Old 07-02-2009
Jim McNamara jim mcnamara is offline Forum Staff  
...@...
  
 

Bli Date: Feb 2004
Beliggenhet: NM
Innlegg: 5749
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.
Reply

Hugseliste

Thread Tools Søk i denne tråden
Søk i denne tråden:

Avansert søk
Visningsmoduser Ranger denne tråden
Ranger denne tråden:

Innleggsaktivitet Regler
Du kanskje ikke poste nye tråder
Du kanskje ikke poste svar
Du kanskje ikke post vedlegg
Du kanskje ikke redigere innleggene dine

BB-kode er
Smilefjes er
[IMG] koden
HTML-koden Av
Pingbacks er
Refbacks er




Alle klokkeslett er GMT -4. Nå er klokken 10:40.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Language Translations Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant nettadresser av vBSEO 3.2.0