![]() |
Hallo und herzlich Willkommen aus den Vereinigten Staaten, die UNIX-und Linux-Foren! Vielen Dank für Ihren Besuch und die Teilnahme an unserem Global Community.
|
|
Google unix.com
|
|||||||
| Foren | Registrieren | Forum-Regeln | Links | Alben | FAQ | Benutzerliste | Kalender | Suche | Die heutige Beiträge | Alle Foren als gelesen markieren |
| High-Level-Programmierung Post Fragen zu C, C + +, Java, SQL, und andere Programmiersprachen hier. |
Mehr UNIX-und Linux-Forum Themen Vielleicht finden Sie hilfreiche
|
||||
| Faden | Thread Starter | Forum | Antworten | Last Post |
| Wie kann die Suche eine Zeichenfolge in einer Text-Datei und ersetzen Sie die gesamte Zeile in einer anderen Datei | kkraja | UNIX for Dummies Questions & Answers | 6 | 08-06-2008 08:23 AM |
| Suche einen Begriff ein und fügen Sie Text nach der Zeichenkette | kesu2k | Shell Programmierung und Scripting | 8 | 07-18-2008 08:35 PM |
| Suche Text-String | itik | AIX | 2 | 01-28-2008 07:01 PM |
| Perl: Suche nach String übergeben wurde, dann auf die Suche und Ersetzen von Text | Crypto | Shell Programmierung und Scripting | 4 | 01-04-2008 10:24 AM |
| Anhängen-String, Text-Datei auf der Grundlage von Such-String | malaymaru | Shell Programmierung und Scripting | 1 | 06-09-2006 09:53 AM |
![]() |
|
|
LinkBack | Thread Tools | Suche diesen Thread | Rate Thread | Anzeige-Modi |
|
|
|
||||
|
Suche einer Zeichenkette in einem Text-Datei in C
Hallo,
Ich brauche Hilfe mit einem Programm Ich bin Programmierung in C Was mein Programm zu tun hat ist die Suche einer Zeichenkette in einem Text-Datei, wenn sie ein Spiel, drucken Sie die Zeichenkette nach stdout. Die Datei sieht wie folgt aus: 000001 Kalifornien 100000 Texas 011110 Ohio 010101 Washington Also, wenn das Programm eine Übereinstimmung findet, druckt "100000 Texas" nach stdout. Können Sie mir helfen? Bitte entschuldigen Sie meine schlechte Englisch. |
|
||||
|
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;
}
|
|
||||
|
Vielen Dank!, Danke Mann, ... Vielen Dank, dass Sie ...
Ich korrigiert "fgets" und "wenn"-Funktionen ... 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;
}
|
|
||||
|
Nr. wird die Suche Zeile für Zeile, fgets wird eine Zeile in einer Zeit. tmp [256] kann in mehr als 255 Zeichen. Keine Zeile in der Beispiel Text ist mehr als 40. Kein Problem.
Als allgemeine Lösung, Nutzung tmp [LINE_MAX], wo LINE_MAX ist in limits.h Die meisten UNIX-Werkzeuge Grenzlinie Größe, was LINE_MAX ist für Ihr System. |
![]() |
| Lesezeichen |
| Thread Tools | Suche diesen Thread |
| Anzeige-Modi | Rate this thread |
|
|