Si ta sous-chaîne apparait au maximum qu'une fois dans une chaîne et si elle ne se situe pas forcément au début, tu peux faire comme ça :
	
	1 2 3 4 5 6 7 8 9 10 11 12 13 14
   |     char chaine1[256] = "1C FREQUENCE A Aller SANS signature";
    char sous_chaine[] = "1C ";
    char chaine2[256];
    char *pos_sous_chaine;
 
    pos_sous_chaine = strstr(chaine1,sous_chaine);
    if (pos_sous_chaine == NULL)
        strncpy(chaine2,chaine1,strlen(chaine1)+1);
    else
    {
        strncpy(chaine2,chaine1,pos_sous_chaine-chaine1);
        chaine2[pos_sous_chaine-chaine1]=0;
        strcat(chaine2,chaine1+(pos_sous_chaine-chaine1)+strlen(sous_chaine));
    } | 
 ~~~~
@ Odulo :
Attention aux parenthèses.
	
	str2 = malloc(strlen(str1 - OFFSET));
 Ce serait plutôt :
	
	str2 = malloc(strlen(str1) - OFFSET + 1); /* Ne pas oublier +1 pour le \0 final */
 
						
					
Partager