Retourner une chaine de caractere grace a une fonction[c]

Signaler
Messages postés
4
Date d'inscription
mardi 6 décembre 2005
Statut
Membre
Dernière intervention
8 décembre 2005
-
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
-
Bonjour,

J'ai écrit un programme qui élimine d'un mot1 toutes les lettres qui apparaissent aussi dans un mot2 grace a la fonction STRSUP.
Mais je n'arrive pas a retourner le mot 1 dont les lettres ont été supprimées. Je sais qu'il manque un "return" mais je ne sais pas quoi mettre dedans.
Merci

Code:

#include<stdio.h>
#include<string.h>


char STRSUP (char*, char*, int, int);
void main()
{
char mot1[26];
char mot2[26];
int nblt1, nblt2;


printf("Entrez le premier mot : ");
fflush(stdin);
scanf("%s", &mot1);


printf("\nEntrez le second mot : ");
fflush(stdin);
scanf("%s", &mot2);


nblt1 = strlen(mot1);
nblt2 = strlen(mot2);


printf("Lettre non presente dans mot2 : %s\n", STRSUP(&mot1[0], &mot2[0], nblt1, nblt2));


}


char STRSUP (char *pt, char* pt2, int nblt1, int nblt2)
{
int i, j, tmp, k;


for(i=0; i<nblt1; i++)
{
for(j=0; j<nblt2; j++)
{
if(*(pt+i) == *(pt2+j))
{
tmp = *pt2;
*pt2 = *(pt2+j);
*(pt2+j) = tmp;


for(k=i; k<26; k++)
{
*(pt+k) = *(pt+k+1);
*(pt2) = *(pt2+k);
}
i--;
nblt1--;
}
}
}
}

3 réponses

Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
9
tu sauvegarde le mot au début, et tu le retournes à la fin, car l'adresse de base de la chaine n'est pas modifiée
Messages postés
4
Date d'inscription
mardi 6 décembre 2005
Statut
Membre
Dernière intervention
8 décembre 2005

Est ce que tu saurais m'expliquez un peu plus parce que la je comprend pas bien.
Merci
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
9
STRSUP retourne un char*, pas un char.
La chaine ne change pas de place en mémoire, donc tu retournes pt. C'est seulement la mémoire pointée par pt qui va être modifiée