Tu peux utiliser 'strchr' qui permet de chercher un caractère dans une chaîne de caratères.
L'idée est de rechercher le séparateur de champ et de remplacer celui de la fin du champ par '0円' pour permettre d'utiliser strcpy qui copiera tout avec les espaces.
Dans l'exemple ci-dessous tous les champs peuvent contenir des espaces, on peut faire un peu plus simple si seul le champ2 peut contenir des espaces.
# strchr
Posté par asailor . En réponse au message sscanf et expressions régulières. Évalué à 2.
L'idée est de rechercher le séparateur de champ et de remplacer celui de la fin du champ par '0円' pour permettre d'utiliser strcpy qui copiera tout avec les espaces.
Dans l'exemple ci-dessous tous les champs peuvent contenir des espaces, on peut faire un peu plus simple si seul le champ2 peut contenir des espaces.
char *sp_debut, *sp_fin;
while (fgets(buffer, MAX_CHAR_BY_LINE, fp_file) != NULL) {
sp_fin = strchr(buffer, '\t');
*sp_fin = '0円';
strcpy(champ1, buffer);
*sp_fin = '\t';
sp_debut = sp_fin + 1;
sp_fin = strchr(sp_debut, '\t');
*sp_fin = '0円';
strcpy(champ2, sp_debut);
strcpy(champ3, sp_fin + 1);
}