bonjour,
je cherche une fonction prédéfini qui permet d'extraire une sous-chaine à partir d'une chaine de caractère s'il existe?
merci de m'aider.
 Extraction d'une sous-chaine en C
 Extraction d'une sous-chaine en C
				
				
						
						
				bonjour,
je cherche une fonction prédéfini qui permet d'extraire une sous-chaine à partir d'une chaine de caractère s'il existe?
merci de m'aider.
 
 
				
				
						
						
				merci pour votre aide mais strstr() permet la recherche d'une chaine dans une autre chaine mais moi je cherche a extraire une sous-chaine à partir d'une chaine!
par exemple: la chaine 'abcde' je cherche à extraire 'bcde'
merci.
 
 
				
				
						
						
				Bonjour,
Il n'y a pas de type « chaîne de caractères » à proprement parler en langage C. On utilise des pointeurs « char * » ou « char const * », ce qui suffit la plupart du temps. Par contre, à quelques exceptions près, ces fonctions n'allouent pas la mémoire elles-mêmes.
Ceci posé, pour extraire une sous-chaîne dans une chaîne plus longue, il suffit de pointer directement dessus. Ainsi :
Te renverra exactement ce que tu cherches. Par contre, la fin d'une chaîne de caractères est matérialisée par un caractère nul « '\0' ». Donc, pour extraire seulement « BCD », il faut soit aller placer manuellement un caractère nul à la place du E (et donc écraser la chaîne originale), soit recopier exactement la longueur qui t'intéresse vers un buffer avec strncpy(), ce qui est ce que tu veux faire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
Enfin, beaucoup de fonctions, à l'instar de strncpy(), permettent de spécifier directement une taille, ce qui permet de travailler sur la chaîne originale sans avoir à la recopier. C'est notamment le cas de printf(), où tu peux utiliser le champ normalement réservé à la précision des nombres pour spécifier la taille de la sous-chaîne à afficher :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
Partager