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...