Strcat perso

Signaler
Messages postés
2
Date d'inscription
samedi 14 octobre 2006
Statut
Membre
Dernière intervention
21 décembre 2006
-
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
-
on me demande d'ecrire une version perso de strcat et voila ce ke je fé sauf que ya un probleme au niveau de la 2eme chaine copié.
Voyez vous mon erreur?
merci d'avance

void Strcat(char string1[], char string2[], char stringres[]){
    
     int i=0;
     int j=0;
    
    
    
     while (string1[i]){
          
           stringres[i]=string1[i];
           i++;
     }
    
    
     while (string2[j]){
     
           stringres[i]=string2[j];

           i++;
           j++;
          
     }
    
 
}

4 réponses

Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
13
Salut,
Une chaine doit toujours se terminer par le caractère de fin "\0". Il suffit donc de mettre la valeur 0 à la fin de la cahine stringres:
void Strcat(char string1[], char string2[], char stringres[]){
    
     int i=0;
     int j=0;
    
    
    
     while (string1[i]){
          
           stringres[i]=string1[i];
           i++;
     }
    
    
     while (string2[j]){
     
           stringres[i]=string2[j];

           i++;
           j++;
          
     }
  // Ajouter la ligne suivante:
  stringres[i]=0;  
 
}
Messages postés
2
Date d'inscription
samedi 14 octobre 2006
Statut
Membre
Dernière intervention
21 décembre 2006

effectivement j'avais completement zapé !!! merci bocoup racpp !!!
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
void bnStrcat(char *a, char *b, char *d)
{
  while(*d = *a) {d++; a++;}
  while(*d = *b) {d++; b++;}
}

ciao...
BruNews, MVP VC++
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
char * myStrcat ( char *sz1, char *sz2, char *szRes )
{
    char * c, *d;
  
    c = sz1;
    d = szRes;

    while(*d++ = *c++);
    c = sz2; d--;
    while(*d++ = *c++);
    d--;
    return d;
}

int main ()

    char Buff[126];
    char * c;
   
    c = myStrcat("Bonjour ", " Je m'apelle David.", Buff);
    printf("%s\n", Buff);
   
    while(c-- > Buff) printf("%c", *c);
    printf("\n");
       
    system("pause");     
   return 0;
}

strcat perso avec exemple de récupération de pointeur sur fin de chaîne
ULARGE_INTEGERJokyQi=QI("Joky"