Rechercher : dans
Par :

[C++] inserer un caractere dans une chaine...

Dernière réponse le 28 mar 2007 à 10:56:42 Vidarce, le 2 jan 2007 à 21:31:37 
 Signaler ce message aux modérateurs

Bonjour à tous,
Je bloque depuis un bon moment sur un programme que je dois faire pour les cours. Rassurez vous, je ne vous demande pas de me donner un code source tout prêt !!

J'ai besoin uniquement d'une chose :
J'aimerais savoir comment il faut faire pour inserer un caractere dans une chaine de caractere existante !!

J'ai creer une chaine de 80 caractere, l'utilisateur ne peut en rentrer que 78 (ce qui me laisse la place pour mettre le caractere + le \0).

Je pensais avoir trouver la méthode mais celle ci ne semble pas marcher :D
Je comptais décaler ma chaine de caractere en partant de la fin jusqu'à atteindre la position où je veux inserer le caractere mais cela ne marche pas.

Pour être précis, voilà ce que je voudrais faire :
Inserer un caractere x à une position p dans la chaine ch :
voici ma fonction creer pour faire cela mais elle ne fonctionne pas :

void Insere(char * ch, char x, int p)
{
int i;
for(i=strlen(ch);i>=p;i--);
{
ch[i+1]=ch[i];
}
ch[p]=x;
}

Merci d'avance.

Meilleures réponses pour « [C++] inserer un caractere dans une chaine... » dans :
Liste doublement chaînée VoirLISTES DOUBLEMENT CHAINÉES Requis I. INTRODUCTION II. Définition III. La construction du prototype d'un élément de la liste IV. Opérations sur les listes doublement chaînées A. Initialisation B. Insertion d'un élément dans la liste 1....
Langage C - Les listes chaînées VoirLa notion de structure autoréferrentielle Une structure autoréferrentielle (parfois appelée structure récursive) correspond à une structure dont au moins un des champs contient un pointeur vers une structure de même type. De cette façon on crée...
Les chaînes de caractères en C++ VoirQu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C++, une...
Langage C - Les chaînes de caractères VoirQu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C, une chaîne...

1

Char Snipeur, le 3 jan 2007 à 10:19:07

Salut.
Bordel, j'ai eu du mal pour trouver une erreur à la con comme celle ci !
il ne faut pas de ';' après le for! dans ce cas là tu fait une boucle sans rien faire.
Du coup quand tu arrive au premier ch[i+1] i vaut déjà p et tu ne change qu'un caractère.
Une fois ce ';' retirer ça fonctionne très bien : bon algo.
Un conseil, pour éviter ce genre d'erreur à l'avenir déclare tes variable de boucle dans la boucle :
for(int i=strlen(ch);i>=p;i--)
en écrivant ça, le compilo doit te dire que tu fait un appel à i en dehors de la boucle et que ça va pas. Salutation !
Char Snipeur

Répondre à Char Snipeur

2

Vidarce, le 3 jan 2007 à 11:38:05

Merci mille fois, je dois avouer que je ne l'avait pas vu celle la !!!!

Répondre à Vidarce

3

karimovy, le 28 mar 2007 à 10:20:16

Je veut savoir la fct qui insere 1 mot dans 1 chaine de caractere. merci

Répondre à karimovy

4

Char Snipeur, le 28 mar 2007 à 10:41:40

Et moi je veux10.000€!
Apprend à lire, la réponse est dans le premier message, il suffit d'enlever le ';' après le for.
La prochaine foi avant de poster un message : lit ce qui est écrit, et demande moins impérativement ! Salutation ! Quand on sait pas, on touche pas !JBT
Char Snipeur

Répondre à Char Snipeur

5

 Stupeflip, le 28 mar 2007 à 10:56:42

C'est clair que c'est si gentiment demandé....
Enfin bon Salut déjà, puis essaye strcat ou pourquoi pas sprintf...

Répondre à Stupeflip