begin process at 2010 03 22 15:12:39
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Chaîne de caractères

 > RECHERCHER ET REMPLACER UN MOTIF DANS UNE CHAINE.

RECHERCHER ET REMPLACER UN MOTIF DANS UNE CHAINE.


 Information sur la source

Note :
7,67 / 10 - par 3 personnes
7,67 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Chaîne de caractères Niveau :Débutant Date de création :16/10/2003 Date de mise à jour :25/10/2005 15:13:47 Vu / téléchargé :3 577 / 125

Auteur : Arnotic

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note


 Description

Se trouve aussi ici: http://www.dev.winsysdev.com/

Voici une fonction qui permet de rechercher et de de remplacer un motif dans une chaine de caractères.

Source

  • #include <stdio.h>
  • #include <stdlib.h>
  • #include <string.h>
  • #include <windows.h>
  • int lsa_replace(char *Text, char *Motif, char *Replace);
  • int main(int argc, char *argv[])
  • {
  • int iReplace;
  • char szMotif[255];
  • char szReplace[255];
  • char *szText;
  • szText = (char *)malloc(sizeof(char *) * 1024);
  • if(!szText) { printf("Erreur d'allocation mémoire."); return 0; }
  • strcpy(szText, "Ceci est un petit test ! :) Comment allez vous ?");
  • printf("Motif a rechercher (255) :\n");
  • scanf("%s", &szMotif);
  • printf("Remplacer par (255) :\n");
  • scanf("%s", &szReplace);
  • iReplace = lsa_replace(szText, (char *)&szMotif, (char *)&szReplace);
  • printf("\n\nResultat (%i remplacements effectues) :\n%s", iReplace, szText);
  • free(szText);
  • // Quit
  • int end;
  • printf("\n\n");
  • scanf("%i", &end);
  • return 0;
  • }
  • int lsa_replace(char *Text, char *Motif, char *Replace)
  • {
  • char *szNewStr;
  • int iLenNewStr = strlen(Text);
  • int i, j, k, iReplace=0;
  • szNewStr = (char *)malloc(sizeof(char *) * iLenNewStr);
  • if(!szNewStr) { return 0; }
  • for(i=0; Text[i]; i++)
  • {
  • if(Text[i] == Motif[0])
  • {
  • for(j=1; Motif[j] && (Motif[j] == Text[i+j]); j++);
  • if(Motif[j] == '\0') // Ok
  • {
  • iReplace++;
  • for(k=0; Text[k+i+j]; k++)
  • szNewStr[k] = Text[k+i+j];
  • szNewStr[k] = '\0';
  • for(k=0; Replace[k]; k++,i++)
  • Text[i] = Replace[k];
  • for(k=0; szNewStr[k]; k++)
  • Text[i+k] = szNewStr[k];
  • Text[i+k] = '\0';
  • i--;
  • }
  • }
  • }
  • free(szNewStr);
  • return iReplace;
  • }
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>

int lsa_replace(char *Text, char *Motif, char *Replace);

int main(int argc, char *argv[])
{
	int iReplace;
	
	char szMotif[255];
	char szReplace[255];

	char *szText;

	szText = (char *)malloc(sizeof(char *) * 1024);
	if(!szText) { printf("Erreur d'allocation mémoire."); return 0; }

	strcpy(szText, "Ceci est un petit test ! :) Comment allez vous ?");

	printf("Motif a rechercher (255) :\n");
	scanf("%s", &szMotif);

	printf("Remplacer par (255) :\n");
	scanf("%s", &szReplace);

	iReplace = lsa_replace(szText, (char *)&szMotif, (char *)&szReplace); 
	printf("\n\nResultat (%i remplacements effectues) :\n%s", iReplace, szText);

	free(szText);

	// Quit
	int end;
	printf("\n\n");
	scanf("%i", &end);
	
	return 0;
}

int lsa_replace(char *Text, char *Motif, char *Replace)
{
	char *szNewStr;
	int iLenNewStr = strlen(Text);
	int i, j, k, iReplace=0;

	szNewStr = (char *)malloc(sizeof(char *) * iLenNewStr);
	if(!szNewStr) { return 0; }

	for(i=0; Text[i]; i++)
	{
		if(Text[i] == Motif[0])
		{
			for(j=1; Motif[j] && (Motif[j] == Text[i+j]); j++);
			if(Motif[j] == '\0') // Ok
			{
				iReplace++;

				for(k=0; Text[k+i+j]; k++)
					szNewStr[k] = Text[k+i+j];
				szNewStr[k] = '\0';
				
				for(k=0; Replace[k]; k++,i++)
					Text[i] = Replace[k];
				for(k=0; szNewStr[k]; k++)
					Text[i+k] = szNewStr[k];
				Text[i+k] = '\0';
				i--;
			}
		}
	}

	free(szNewStr);

	return iReplace;
}

 Conclusion

Amusez-vous bien.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  •   Debug
    • lsa.exeTélécharger ce fichier [Réservé aux membres club]118 784 octets
  • lsa.cppTélécharger ce fichier [Réservé aux membres club]Voir ce fichier1 560 octets
  • lsa.ncbTélécharger ce fichier [Réservé aux membres club]44 032 octets
  • lsa.slnTélécharger ce fichier [Réservé aux membres club]Voir ce fichier906 octets
  • lsa.suoTélécharger ce fichier [Réservé aux membres club]7 168 octets
  • lsa.vcprojTélécharger ce fichier [Réservé aux membres club]2 953 octets

Télécharger le zip


 Historique

25 octobre 2005 15:13:47 :
Se trouve aussi ici: http://www.dev.winsysdev.com/

 Sources du même auteur

Source avec Zip Source avec une capture ARCOLOR (WIN64)
Source avec Zip REMPLACE CRT (WIN64)
Source avec Zip Source avec une capture CREATION DE FICHIER PDF
Source avec Zip SURVEILLER LA MÉMOIRE D'UN PROCESSUS
Source avec Zip TOOL - MOVE CHAINE

 Sources de la même categorie

FONCTION : CHAR * AJUSTERTAILLECHAINE() par Rockanos
Source avec Zip RECHERCHE D'ANNAGRAMMES par Torin
GESTION DE CHAINE DE CARACTÉRE EN C++ AVEC NSTRING par xmustapha
Source avec Zip COMMENTER CODE C <=> ASM (WIN64) par BruNews
Source avec Zip GSTRING - GESTION DES CHAINES DE CARACTÈRES par Neokript

Commentaires et avis

Commentaire de Cethywolf le 23/07/2006 21:31:36

A l'air de bien fonctionner sur VC++6, merci :)

Commentaire de Cethywolf le 23/07/2006 21:33:46

Rectification, ne fonctionne pas si on mets une trop longue chaîne à remplacer.

Tu devrais voir du côté de realloc, même si c'est lourd, je vois comment faire autrement.

 Ajouter un commentaire




Nos sponsors


Appels d'offres

Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 4,446 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales