Salut à tous,
voilà mon problème, j'ai le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
 
char Chaine[100],Chaine2[1];
unsigned char i;
 
void main()
{
	printf("Veuillez saisir la chaine a traiter : ");
	gets(Chaine);
 
	printf("Veuillez saisir le caractere a eliminer : ");
	gets(Chaine2);
 
	do
	{
		for(i=strcspn(Chaine, Chaine2); i<strlen(Chaine); i++)
		{
			Chaine[i]=Chaine[i+1];
		}
		Chaine[strlen(Chaine)+1]='\0';
 
		i=strcspn(Chaine, Chaine2);
	}
	while(strcspn(Chaine, Chaine2)!=0);
 
	printf("%s\n", Chaine);
}
et lorsque je met "sallut" dans Chaine et "l" dans Chaine2, lors de le deuxième passe de la boucle do...while, la fonction strcspn(Chaine, Chaine2) me renvois 4 alors que Chaine="saut" et Chaine2="l". Il n'y a donc plus d'occurence de Chaine2 dans Chaine. Mais alors pourquoi strcspn(Chaine, Chaine2) renvois 4? surtout que Chaine[4]=0 (NULL).
Si quelqu'un a une solution, il est le bienvenue