Salut à tous,
voilà mon problème, j'ai le code suivant :
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).
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); }
Si quelqu'un a une solution, il est le bienvenue![]()
Partager