insertion d'une chaine au coeur d'une utre

insertion d'une chaine au coeur d'une utre - C - Programmation

Marsh Posté le 22-11-2006 à 18:56:02    

Bonjour,
Existe t'il une fonction qui permette d'inserrer un chaine au milieu d'un autre?
Exp toto et titi donnerai totitito.

Reply

Marsh Posté le 22-11-2006 à 18:56:02   

Reply

Marsh Posté le 22-11-2006 à 18:56:18    

nan, il faut l'écrire soi même.

Reply

Marsh Posté le 22-11-2006 à 20:05:40    

Code :
  1. char buffer[BIG_SIZE];
  2. char* s1 = "toto";
  3. char* s2 = "zoupzoup";
  4. const int k = strlen(s1) / 2;
  5. memcpy(buffer, s1, k);
  6. sprintf(buffer + k, "%s%s", s2, s1 + k);
  7. puts(buffer); // tozoupzoupto


Message édité par jesus_christ le 22-11-2006 à 20:30:49
Reply

Marsh Posté le 22-11-2006 à 20:07:42    

génial le buffer de taille fixe [:bien]
 
(et en plus ça marche pas ...)

Message cité 1 fois
Message édité par 0x90 le 22-11-2006 à 20:08:52
Reply

Marsh Posté le 22-11-2006 à 20:30:39    

0x90 a écrit :

génial le buffer de taille fixe [:bien]
 
(et en plus ça marche pas ...)


va porter tes remarques à K&R pour la conception du C... merci mais je connais la notion de débordement, je voulais pas me faire un malloc(strlen(s1) + strlen(s2) + 1) histoire de pas compliquer, mais si tu y tiens...
 
et oui j'ai vu l'erreur, c'est strlen() / 2  :jap:

Message cité 2 fois
Message édité par jesus_christ le 22-11-2006 à 20:31:18
Reply

Marsh Posté le 22-11-2006 à 20:42:06    

jesus_christ a écrit :

va porter tes remarques à K&R pour la conception du C... merci mais je connais la notion de débordement, je voulais pas me faire un malloc(strlen(s1) + strlen(s2) + 1) histoire de pas compliquer, mais si tu y tiens...
 
et oui j'ai vu l'erreur, c'est strlen() / 2  :jap:


 
Bha ce que tu sais ou tu ne sais pas j'en sais rien, mais quand quelqu'un pose une question relativement simple on peut supposer qu'il y a un risque significatif qu'il ne connaisse pas trop cette notion, donc autant éviter ce genre de choses.

Reply

Marsh Posté le 22-11-2006 à 22:43:30    

Puis sprintf pour faire ca, c'est un peu petit quand meme.

Reply

Marsh Posté le 23-11-2006 à 19:26:31    

jesus_christ a écrit :

et oui j'ai vu l'erreur, c'est strlen() / 2  :jap:


Hum... quand yartempion a dit "au milieu" c'est plus un effet de phraséologie que le vrai milieu de la chaîne. Donc c'aurait été bien que tu partes directement à pouvoir insérer s2 à une position "x" à partir de "s1"...


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed