donné deux stress> triés forts>, j'ai besoin de fusionner ces chaînes à une chaîne et de le faire trier.
Trier par la valeur ASCII forte>. par exemple:
mon code: p> le premier Le problème est avec acdty code>, berz code> => abcderyz code> tailleOf (a) code>. Si je code: printf ("% d", taille de (a)); code> IT imprime 8 code>, alors que je m'attends à imprimer 5 code>. p> p>
4 Réponses :
Lorsque vous travaillez avec des chaînes en C, vous voudrez utiliser Notez également que strallen () code> pour voir combien de temps ils sont, pas Tailleof code> (qui vous dit simplement quelle est la taille de la taille. d'un pointeur est). p>
Tailleof (Char) code> est 1 par définition, il n'est donc pas nécessaire de dire " * Tailleof (char) code>" Dans votre MALLOC Code> p>
Taille de Code> vous indique la taille de l'objet ou du type, en fonction de son opérande.
Tailleof (a) Code> retournera la taille d'un pointeur dans ce cas qui sera de 8 octets si vous compilez pour 64 architecture.
Vous devez transmettre la taille de chaque chaîne ou boucler les caractères de chaîne jusqu'à atteindre le '\ 0' code> si la chaîne est désormais terminée. p>
A string i> est désormais terminé par la définition par définition i>.
Vous devez envisager d'utiliser qsort code>:
Vrai, mais cela augmente la complexité du temps d'exécution de O (n) à O (n log n).
Comme grand-mère Roseannadanna a dit une fois dit: "C'est toujours quelque chose!" :-)
L'expression la valeur de retour de i pour code> boucle est le principal coupable. La version corrigée de votre programme pourrait être: (J'ai édité le code un bit) malloc code> doit être vérifié contre NULL dans un véritable programme. En outre, il y a une fuite de mémoire (facile à réparer). P> p>
Ne fonctionne pas avec pairesDarrays ("az", "ks") code>. Il renvoie aks code> au lieu de aksz code>
@ Chux-RestarStaTemonica copié du code d'origine. Corrigé maintenant. Je n'utiliserais pas moi-même des index; J'utiliserais juste des pointeurs A code> et b code>, mais je ne voulais pas modifier beaucoup le code d'origine.
Char A [] Code> Comme paramètre de fonction est ajusté àChar * A Code> SOTailleof (a) Code> donne "Taille du pointeur" par opposition à "Taille de tableau ".Char * C = (Char *) MALLOC (SHLEN (A) + SHLEN (B)); CODE> Vous devrez ajouter 1 pour le caractère Null. Et ne pas lancer la valeur de retour demalloc code> in cEst-ce que cela répond à votre question? Comment trouver le "Tailleof" (un pointeur pointant vers un tableau)?
@ Dandan78 J'ai utilisé Slen .. mais toujours .. il y a un problème comme décrit
Tu es chanceux. Il pourrait i> Impression "Segfault".
S'il vous plaît ne modifiez pas le code dans votre question pour éliminer les problèmes. Cela rend très difficile pour les personnes qui viennent plus tard et lisent la question et les commentaires pour comprendre ce qui se passe réellement. J'ai retourné à la dernière version de la question qui contenait
taille de code>. Merci.Tal ROFE, donné «Trier par la valeur ASCII», que devraient-ils arriver lorsque les valeurs sont en dehors de la gamme ASCII 0-127?