Recréer la fonction strcat! [Résolu/Fermé]

Signaler
-
 mathlo -
Bonjour,
j'essaie de refaire la fonction strcat...
voila mon main :

#include <stdio.h>
#include <stdlib.h>
#include "header.h"

int main()
{
int longueur = 0;
char chaine[100];
char copie[100];
char chaine1[100];



printf("Entrez un mot :\n");
scanf("%s", chaine);
longueur = str_long(chaine);
printf("nbre caractere = %d\n", longueur);
str_copie(chaine, copie);
printf("Entrez une deuxieme chaine a concatener dans la 1ere...\n");
scanf("%s\n", chaine1);
str_conca(chaine,chaine1);
return 0;
}



dans mon header y a les prototypes des fnctions que voici :

int str_long (char chaine[])
{
char lettre = 0; int i = 0;
lettre = chaine[i];
while (lettre != '\0')
{
lettre = chaine[i];
i++;
}
i--;
return i;
}


void str_copie (char chaine[], char copie[])
{
int longueur = str_long(chaine);
int i = 0;
while (i<longueur+1)
{
copie[i]=chaine[i];
i++;
}
printf("modele = %s\n", chaine);
printf("copie = %s\n", copie);
}



void str_conca(char chaine[], char chaine1[])
{
int i=0, compteur=0, tot=0;
char lettre=0;
int longueur = str_long(chaine);
printf("%d\n", longueur);
int longueur1 = str_long(chaine1);
printf("%d\n", longueur1);

while (compteur<longueur1)
{
chaine[longueur+compteur]=chaine1[compteur];
compteur++;
printf("%c", chaine[longueur+compteur]);
}
chaine[longueur+compteur+1]='\n';
printf("chaine concatenée : %s", chaine);
}



mais quand je lance, ca bug printf("Entrez une deuxieme chaine a concatener dans la 1ere...\n");
scanf("%s\n", chaine1);
juste apres le scanf ....

merci d'avance :p


2 réponses

Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1 736
Bonjour,

J'ai regardé en diagonale :
scanf("%s\n", chaine1);
Pas de '\n' dans le scanf.

chaine[longueur+compteur+1]='\n';
C'est un '\0' qu'il faut mettre.

En espérant que cela corrige tes problèmes.
mec, t'es un dieu.
un grand merci.