A voir également:
- Comparer deux caractères en c
- Caractères ascii - Guide
- Caractères spéciaux clavier azerty - Guide
- Caractères spéciaux - Guide
- Deux ecran pc - Guide
- Caractères spéciaux mac - Guide
4 réponses
kmanber
Messages postés
543
Date d'inscription
mardi 30 août 2005
Statut
Membre
Dernière intervention
28 décembre 2008
256
4 oct. 2005 à 19:37
4 oct. 2005 à 19:37
tu as attribué une valeur à longueur avant de modifier ?
tu as déclaré une longueur de chaine suffisament importante pour longueur ?
tu as déclaré une longueur de chaine suffisament importante pour longueur ?
salut tout le monde,
j'ai eu le même probleme, moi j'ai tester le premier paramettre temp[i], s'il est NULL ça donne "fault segmentation" , et ça marche bien,
j'espere que e ça va t'aider.
j'ai eu le même probleme, moi j'ai tester le premier paramettre temp[i], s'il est NULL ça donne "fault segmentation" , et ça marche bien,
j'espere que e ça va t'aider.
arth
Messages postés
9374
Date d'inscription
mardi 27 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2016
1 292
4 oct. 2005 à 19:57
4 oct. 2005 à 19:57
a mon avis change
strcpy(longueur[i], temp[i]);
par
longueur[i]=temp[i];
je pense que comme tu compares deux caractères le strcpy ne sert à rien
strcpy(longueur[i], temp[i]);
par
longueur[i]=temp[i];
je pense que comme tu compares deux caractères le strcpy ne sert à rien
darkhorkeu
Messages postés
73
Date d'inscription
mardi 20 mai 2003
Statut
Membre
Dernière intervention
9 juin 2007
30
22 oct. 2005 à 19:59
22 oct. 2005 à 19:59
strcmp doit prendre 2 chaines en paramètres, or le premier param que tu as mis est un caractere, et non une chaine.
En ce qui concerne le strcpy, arth a raison.
Au final, ça devrait ressembler à quelque chose comme ça :
Dans ce cas, je suppose que ton tableau de caractère longueur était déjà alloué (et que tu as prévu suffisament de caractères).
En ce qui concerne le strcpy, arth a raison.
Au final, ça devrait ressembler à quelque chose comme ça :
int i=0; int t; t = strlen(temp); for(i=0 ; ( i < t) && (temp[i] != ' ') , i++ ) { longueur[i] = temp[i]; } longueur[i] = '\0'; // caractere de fin de chaine
Dans ce cas, je suppose que ton tableau de caractère longueur était déjà alloué (et que tu as prévu suffisament de caractères).
salut
je viens de tomber sur ce sujet et moi je voulais savoir un truc:
si je veux supprimer un caractere d'une chaine, sans utiliser de fonctions particulieres....comment faire???
ex:
chaine1 = bonjour;
supprimer 'j';
chaine1 = bonour;
je sais rechercher le caractere mais je ne sais pas comment supprimer le caractere et modifier la chaine!
merci!
Pof
je viens de tomber sur ce sujet et moi je voulais savoir un truc:
si je veux supprimer un caractere d'une chaine, sans utiliser de fonctions particulieres....comment faire???
ex:
chaine1 = bonjour;
supprimer 'j';
chaine1 = bonour;
je sais rechercher le caractere mais je ne sais pas comment supprimer le caractere et modifier la chaine!
merci!
Pof
SAlut
deja de savoir retrouver la lettre a supprimé est la 1ere etape, mais il ne faut pas oublier de sauvegarder la position de ta lettre a supprimer dans le mot (dans ton exemple la position sera 3)
ensuite tu parcours ton mot en ne touchant a rien juqu'a ta position -1
puis a partir de position jusqu'a la longueur de ton mot -1 (car ton mot est reduit d'une lettre) tu affectes la lettre suivante
dans ce genre
mot[i] = mot[i+1]
et qd tu es a la fin et que t'as affecté ta derniere lettre, tu dis que ton mot est terminé :
mot[longueur] = '\0'
voila,
c pas super boen expliqué mais la solution est la...
deja de savoir retrouver la lettre a supprimé est la 1ere etape, mais il ne faut pas oublier de sauvegarder la position de ta lettre a supprimer dans le mot (dans ton exemple la position sera 3)
ensuite tu parcours ton mot en ne touchant a rien juqu'a ta position -1
puis a partir de position jusqu'a la longueur de ton mot -1 (car ton mot est reduit d'une lettre) tu affectes la lettre suivante
dans ce genre
mot[i] = mot[i+1]
et qd tu es a la fin et que t'as affecté ta derniere lettre, tu dis que ton mot est terminé :
mot[longueur] = '\0'
voila,
c pas super boen expliqué mais la solution est la...
je sui sur un exo du meme genre que toi.
je te laisse mon prog, normalmen il fonctionne:
char chaine1 [30]; // déclaration de la premiere chaine
int L; // declaration de la variable de comptage
cout<<"entrez un premier texte : ";
gets(chaine1); // sasie de la chaine
for (L=0;chaine1 [L]!='\0';L++); // comptage des caracteres
{
cout<<"Votre texte comporte "<<L<<" caracteres\n\n";
}
char chaine2[30]; // déclaration d'une deuxieme chaine
int C; //déclaration d'une variable de comparaison
cout<<"entrez second texte : ";
gets(chaine2); // sasie de la chaine2
for(C=0;C==L;C++);
{
if(chaine1[C]==chaine2[C])
{
cout<<"les textes sont identiques\n\n";
}
else
{
cout<<"les textes ne sont pas identiques\n\n";
je te laisse mon prog, normalmen il fonctionne:
char chaine1 [30]; // déclaration de la premiere chaine
int L; // declaration de la variable de comptage
cout<<"entrez un premier texte : ";
gets(chaine1); // sasie de la chaine
for (L=0;chaine1 [L]!='\0';L++); // comptage des caracteres
{
cout<<"Votre texte comporte "<<L<<" caracteres\n\n";
}
char chaine2[30]; // déclaration d'une deuxieme chaine
int C; //déclaration d'une variable de comparaison
cout<<"entrez second texte : ";
gets(chaine2); // sasie de la chaine2
for(C=0;C==L;C++);
{
if(chaine1[C]==chaine2[C])
{
cout<<"les textes sont identiques\n\n";
}
else
{
cout<<"les textes ne sont pas identiques\n\n";
salut
je viens de tomber sur ce sujet et moi je voulais savoir un truc:
si je veux comparer deux chaines caractères ......comment faire???
ex :
chaine1 = heureux;
chaine2 = bonjour;
est ce que je doit faire strict ?
if (chaine1==chaine2) then
.............................
...........................
merci!
Pof
je viens de tomber sur ce sujet et moi je voulais savoir un truc:
si je veux comparer deux chaines caractères ......comment faire???
ex :
chaine1 = heureux;
chaine2 = bonjour;
est ce que je doit faire strict ?
if (chaine1==chaine2) then
.............................
...........................
merci!
Pof