Se un esercizio mi chiede di trasformare le lettere minuscole in maiuscole dopo il punto in un testo come devo fare? Cioè io ho ad esempio due frasi in un file:
Ciao. dove vai?
"fate luogo voi", rispose Lodovico. "la diritta e` mia".
Nella prima fase cè il punto e lo spazio mentre nella seconda dopo Lodovico ce è il punto ma ci sono anche lo spazio e le virgolette... come dico al programma che mi deve trasformare la l in L se dopo il punto ce uno spazio e delle virgolette e la d in D se ce lo spazio?
Ho fatto in questo modo ma non so se è corretto dato che mi da un errore:
Mi da questo errore:codice:int main(){ char testo[100]; int i = 0, k; FILE *sourceFile; FILE *destinationFile; sourceFile = fopen("testo.txt", "r"); destinationFile = fopen("testout.txt", "w"); while(!feof(sourceFile)){ fscanf(sourceFile, "%s", testo); fprintf(destinationFile,"%s ", testo); for(i = 0; i<strlen(testo); i++){ if((testo[i] == ".") && (testo[i + 1] == " ")){ testo [i + 2] = (testo[i + 2] + 32); } if((testo[i] == ".") && (testo[i + 1] == " ") && (testo[i + 2] == "249")) { testo[i + 3] = (testo[i + 3] + 32); } } fclose(sourceFile); fclose(destinationFile); printf("%s",testo); system("PAUSE"); }
"Comparison between pointer and integer" ai due if... Mi sono accorto che l'errore è nelle virgolette ma non so risolverlo... all ultimo if ho messo 249 che corrisponde alle " in codice ASCII dato che non sapevo come metterle...

Rispondi quotando