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:
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");
}
Mi da questo errore:
"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...