Définir tout les mots palindromes dans un fichier texte
joujou98
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour, je veux écrire une fontion qui détermine les mots palindrome dans un fichier dictionnaire et les mettre avec leurs définition dans un nouveau fichier txt "palindromes" , la structure du fichier dictionnaire est " mot:definition "
mon probleme c'est que quand j'affiche avec printf
<code>
un caractere de plus s'affiche à la fin d'un mot qui est palindrome
par exemple : Ligne : higgih:bbbb
elle ma'ffiche higgihI par exemple !
void palindromes (FILE* fich)
{
FILE *pd=NULL ;char *tmp2=NULL ,*tmp=NULL;
pd=fopen("palindromes.txt","a+");
char line [ 128 ]; int n=0; char c; int i=0;
while ( fgets ( line, sizeof line, fich ) != NULL )
{ n=0;
printf("Ligne : %s", line);
while(line[n] != ':')
{
n++;
}
tmp=(char*)malloc(n+1);
strncpy(tmp,line,n);
printf("%s \n",tmp);
int k=0;
int len=strlen(tmp);
k=palindrome(tmp);
if(k== 1)
{
int j=n;
while (line[j] != '\0')
{ j++ ;}
tmp2=malloc(n+1);
strncpy(tmp2,line+n,j);
strcat(tmp+n,tmp2);
if (pd != NULL)
{
fprintf(pd,"%s",tmp);
}
}
free(tmp);
free(tmp2);
}
fclose(pd);
}
mon probleme c'est que quand j'affiche avec printf
tmp=(char*)malloc(n+1);
strncpy(tmp,line,n);
printf("%s \n",tmp);
<code>
un caractere de plus s'affiche à la fin d'un mot qui est palindrome
par exemple : Ligne : higgih:bbbb
elle ma'ffiche higgihI par exemple !
Configuration: Windows / Firefox 63.0
A voir également:
- Définir tout les mots palindromes dans un fichier texte
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
1 réponse
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour, cela me semble normal, puisque tu ne fais rien pour que tmp pointe vers une chaîne de caractères terminée par un caractère null. que vaut len?
suggestion:
suggestion:
tmp[n] = '\0';