int GetLine(const char * pszSource, char * pszDestination, int iLine)
{
int i;
i = 0;
while(*pszSource && i < iLine) {
if(*pszSource++ == '\n') i++;
}
if(*pszSource && i == iLine) {
i = 0;
while(*pszSource && *pszSource != '\n') {
pszDestination[i++] = *pszSource++;
}
pszDestination[i] = 0;
} else {
i = 0;
}
return i;
}
Remarque :
La fonction est très simple d'utilisation et bien plus optimisé que sa version proposé par SAKingdom.
Pas de superflu inutile.
La fonction prend en parametre la chaine source, la chaine destination et le numéro de ligne a extraire.
La fonction retourne la taille de la ligne resultante.
Voici un exemple d'utilisation :
int main()
{
char * pszSrc = new char[40];
char * pszDest = new char[40];
strcpy(pszSrc, "Bonjour\nCa va?\nMoi oui.\nEt toi ?\n");
printf("Taille\t: %i\nLigne\t: %s\n\n", GetLine(pszSrc,pszDest, 3), pszDest);
return 0;
}