[C++] inserer un caractere dans une chaine...
Résolu
Vidarce
Messages postés
6
Date d'inscription
Statut
Membre
Dernière intervention
-
Stupeflip Messages postés 391 Date d'inscription Statut Membre Dernière intervention -
Stupeflip Messages postés 391 Date d'inscription Statut Membre Dernière intervention -
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.
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.
A voir également:
- [C++] inserer un caractere dans une chaine...
- Insérer une vidéo dans powerpoint - Guide
- Caractère ascii - Guide
- Caractère spéciaux - Guide
- Caractere speciaux - Guide
- Insérer signature word - Guide
5 réponses
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 !
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 !
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.
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.
C'est clair que c'est si gentiment demandé....
Enfin bon Salut déjà, puis essaye strcat ou pourquoi pas sprintf...
Enfin bon Salut déjà, puis essaye strcat ou pourquoi pas sprintf...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question