Remplacer des caractères d'une chaine

Soyez le premier à donner votre avis sur cette source.

Snippet vu 19 665 fois - Téléchargée 8 fois

Contenu du snippet

/*
    lpSrc : La chaine à traiter
    lpChars : Les caractères à remplacer
    cReplace : Le caractère de remplacement
  */
 char *ReplaceByChr (char *lpSrc, char *lpChars, char cReplace)
 {
 //  if(!lpSrc || !*lpSrc || !lpChars|| !*lpChars || !cReplace) return 0;
  
   do {
     char *pChars = lpChars;
 
     do {
       if(*pChars == *lpSrc) {
         *lpSrc = cReplace;
         break;
       }
     } while(*++pChars);
   } while(*++lpSrc);
  
   return lpSrc;
 }
 
 /*
   lpDest : La chaine destinatrice
   lpSrc : La chaine source
   lpChars : Les caracteres à remplacer
   lpReplace : La chaine de remplacement
 */
 char *ReplaceByStr (char *lpDest, char *lpSrc, char *lpChars, char *lpReplace)
 {
 //  if(!lpDest || !*lpSrc || !lpSrc || !*lpChars || !lpChars || !*lpRemplace || !lpRemplace)
 //    return 0;
 
   do {
     char *pChars = lpChars;
 
     do {
       if(*lpSrc == *pChars) {
         char *pReplace = lpReplace;
 
         do *lpDest++ = *pReplace; while(*++pReplace);
 
         goto __test_curchar;
       }
     } while(*++pChars);
     
     *lpDest++ = *lpSrc;
 
 __test_curchar:;
   } while(*++lpSrc);
 
   *lpDest = 0;
   return lpDest;
 }
 
 /*
   lpDest : La chaine destinatrice
   size : La taille total de la chaine destinatrice
   lpSrc : La chaine source
   lpChars : Les caracteres à remplacer
   lpReplace : La chaine de remplacement
 */
 char *s_ReplaceByStr (char *lpDest, int iSize, char *lpSrc, char *lpChars, char *lpReplace)
 {
   char *pLimit;
 
 //  if(!lpDest || !size || !*lpSrc || !lpSrc || !*lpChars || !lpChars || !*lpRemplace || !lpRemplace)
 //    return 0;
 
   pLimit = (lpDest+iSize)-1;
 
   do {
     char *pChars = lpChars;
 
     do {
       if(*lpSrc == *pChars) {
         char *pReplace = lpReplace;
 
         do {
           *lpDest = *pReplace;
           if(++lpDest == pLimit) goto __end_loops;
         } while(*++pReplace);
 
         goto __test_curchar;
       }
     } while(*++pChars);
     
     *lpDest++ = *lpSrc;
 
 __test_curchar:;
   } while(*++lpSrc);
 
 __end_loops:
   *lpDest = 0;
   return lpDest;
 }
 
 /*
   lpSrc : La chaine à traiter
   lpChars : Les caractères à remplacer
   lpReplaces : Les caractères de remplacement
 */
 char *ReplaceByPredef (char *lpSrc, char *lpChars, char *lpReplaces)
 {
 //  if(!*lpSrc || !lpSrc || !*lpChars || !lpChars || !*lpReplaces || !lpReplaces) return 0;
 
   do {
     int iLoc = 0;
 
     do 
       if(*lpSrc == lpChars[iLoc]) *lpSrc = lpReplaces[iLoc];
     while(lpChars[++iLoc]);
 
   } while(*++lpSrc);
 
   return lpSrc;
 }
 
 /*
   lpSrc : La chaine à traiter
   lpChars : Les caractères à remplacer
   lpReplaces : Les caractères de remplacement
   iCount : Le nombre de caractères présents dans lpReplaces
 */
 char *s_ReplaceByPredef (char *lpSrc, char *lpChars, char *lpReplaces, int iCount)
 {
 //  if(!*lpSrc || !lpSrc || !*lpChars || !lpChars || !*lpReplaces || !lpReplaces) return 0;
 
   do {
     int iLoc = 0;
 
     do
       if(iLoc < iCount)
         if(*lpSrc == lpChars[iLoc]) *lpSrc = lpReplaces[iLoc];
     while(lpChars[++iLoc]);
 
   } while(*++lpSrc);
 
   return lpSrc;
 }

Compatibilité : C

Disponible dans d'autres langages :

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.