J'ai appris quelques-unes des fonctions C intelligentes qui nécessitent une boucle, mais pas de corps de boucle à exécuter (comme strcpy()
), et ne sont donc qu'une longue ligne. Juste par intérêt, est-il possible de réduire le remplacement de tous les caractères de nouvelle ligne \n
avec des espaces à une ligne comme celle-ci?Caractère C Remplacer dans une ligne
Au moment où j'ai
char* newline_index;
while (newline_index = strchr(file_text, '\n'))
{
*newline_index = ' ';
}
Je voudrais faire quelque chose comme ceci:
while (*strchr(file_text, '\n') = ' ');
mais bien sûr quand strchr retourne null Je vais essayer de déréférencer un null aiguille.
Je sais que l'utilisation de strchr est une triche, car elle contient plus de code, mais j'aimerais voir s'il y a une façon de faire une seule ligne en utilisant simplement les fonctions c standard.
Edit: Avec un peu d'aide, c'est le meilleur que je suis venu avec:
char* newline_index;
while ((newline_index = strchr(file_text, '\n')) && (*newline_index = ' '))
Si le fichier est grand, alors il sera très lent pour le faire, ' strchr' scanne le fichier, il faudra donc du temps pour scanner le fichier encore et encore au lieu de le scanner une fois. – Guy
C'est vrai, mais rappelez-vous que mon but est d'être concis, pas de vitesse. – Miguel
Vous voulez quelque chose comme: char * newline_index; while ((newline_index = * strchr (texte_texte, '\ n')) && (newline_index!= NULL) && (newline_index = '')); ?? –