É moralmente sbagliato usare il break all'interno del ciclo for , sarebbe più opportuno che riguardassi il codice e trovassi un alternativa , perché mettendo quel brak andresti a contraddire la definizione stessa del ciclo for.
In pratica una cosa del genere?
C:
for(i=0; (strcmp(nuovo[i].titolo,ricerca)!=0), i<numero;i++) {}
Questo qui esce in due casi:
- viene effettivamente trovato il libro, cioè strcmp == 0
- non viene trovato il libro e i == numero
C:
if (i==numero) printf("Libro non trovato");
else printf("Libro trovato");
Un'altra possibilità sarebbe
C:
for(i=0; i<numero;i++)
if (strcmp(nuovo[i].titolo,ricerca)==0) {
printf("Libro trovato");
i = numero-1;
}
In entrambi i casi devi giocare con l'indice e numero, cosa che può causare bug e disastri appena distogli lo sguardo.
Imho break è la soluzione più elegante e sicura.