![]() |
|
|
google unix.com
|
|||||||
| Forums | S'inscrire | Forum Rules | Liens | Albums | FAQ | Liste des membres | Calendrier | Recherche | Aujourd'hui, les postes | Marquer les forums comme lus |
| High Level Programming Posez vos questions à propos de C, C + +, Java, SQL, et d'autres langages de programmation ici. |
Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
|
||||
| Fil | Thread Starter | Forum | Réponses | Last Post |
| comment pouvez chercher une chaîne dans un fichier texte et remplacez la ligne entière dans un autre fichier | kkraja | UNIX pour les nuls Questions et réponses | 6 | 08-06-2008 08:23 AM |
| Recherche d'une chaîne de texte et d'ajouter après la chaîne | kesu2k | De programmation et de script Shell | 8 | 07-18-2008 08:35 PM |
| recherche de texte | itik | AIX | 2 | 01-28-2008 07:01 PM |
| Perl: Recherche de chaîne de ligne, de recherche et remplacer du texte | Crypto | De programmation et de script Shell | 4 | 01-04-2008 10:24 AM |
| chaîne à l'ajout de fichier de texte basé sur chaîne de recherche | malaymaru | De programmation et de script Shell | 1 | 06-09-2006 09:53 AM |
![]() |
|
|
LinkBack | Thread Tools | Recherche sur ce Thread | Rate Thread | Modes d'affichage |
|
|
|
||||
|
Recherche d'une chaîne de caractères dans un fichier texte en C
Bonjour,
J'ai besoin d'aide pour un logiciel que je codage en C. Qu'est-ce que mon programme a à faire est de rechercher une chaîne dans un fichier texte, si elle trouve une correspondance, l'impression à la chaîne stdout. Le fichier ressemble à: 000001 Californie 100000 Texas 011110 Ohio 010101 Washington Ainsi, si le programme trouve une correspondance, des tirages "100000 Texas" sur la sortie standard. Pourriez-vous m'aider? S'il vous plaît excuser mon mauvais français. |
|
||||
|
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;
}
|
|
||||
|
Thank You!, Merci l'homme, ... Merci ... J'ai corrigé "fgets" et "si" les fonctions ... 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;
}
|
|
||||
|
Pas de recherche en ligne par ligne, fgets est une ligne à la fois. tmp [256] peut lire dans le plus grand nombre de 255 chars. Pas de ligne dans l'exemple de texte est plus long que 40. Pas de problème.
En guise de solution générale, l'utilisation tmp [LINE_MAX] où LINE_MAX est défini dans limits.h plupart des outils UNIX limite quelle que soit la taille de ligne est LINE_MAX pour votre système. |
![]() |
| Bookmarks |
| Thread Tools | Recherche sur ce Thread |
| Modes d'affichage | Rate this thread |
|
|