Si l1
et l2
sont les longueurs des deux chaînes, il faut l1 +l2 +1
caractères (ne pas oublier le zéro final !). On obtient alors :
char *concat(char *s1, char*s2){ int l1 = strlen(s1); char *s = (char*) malloc( l1 +strlen(s2) +1); if (s) { // allocation réussie strcpy(s, s1); strcpy(s +l1, s2); } return s;}
Un pointeur nul est renvoyé en cas déchec.