Salut à tous, le code suivant doit en principe faire la concaténation de deux chaines de caractères, mais c'est pas le cas. Sinon, ça compile quand même mais ça renvoi autre chose. J'arrive pas à trouver l'erreur.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <stdio.h>
#include <stdlib.h>
 
size_t stringLength(const char* str)
{
   size_t cpt = 0;
	while (* str!='\0')
	{
		str++;
		cpt++;
	}
  return cpt;
}
 
char *concatenateString(const char *str1, const char *str2)
{
    char *ptr;
    size_t s1=stringLength((str1));
    size_t s2=stringLength((str2));
    size_t s3=s1+s2-1;
 
    ptr=(char*)malloc(stringLength(s3)*sizeof(char));
    return ptr;
}
 
 
 
int main(void)
{
   const char *chaine1 = "Salut";
   const char *chaine2 = "valli";
   char *concatenation;
 
    concatenation = concatenateString(chaine1, chaine2);
 
    printf("La nouvelle chaine est %s", concatenation);
 
    return 0;
}
merci d'avance