2015-06-05 5 views
0

В настоящее время я работаю над проектом колледжа, и мне нужна помощь, потому что искры еще не произошло в моем мозгу.Проверьте, является ли первый символ абзаца строчным.

Заголовок говорит само за себя, мне нужно проверить, если первый символ абзаца строчными, и если да, то подсчитать, сколько из них существуют в общей сложности (это может быть полезно для проверки ошибки в файлах txt)

В настоящее время у меня есть этот фрагмент кода, который находит абзац, и после этого он должен проверить, является ли первый символ строчным, проблема в том, что я не понимаю, как я могу указать на первый символ после и из-за этого я не могу ввести оператор if, потому что new-line снова будет 0. printf("ola\n"); - это просто проверить, входил ли я в состояние или нет, у них нет другой цели в коде. Спасибо

Код:

#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 

int main(){ 

int ch; 
    FILE *fp; 
    int paragraph=0; 
    int newLine=0; 
    int temp=0; 
    fp = fopen("123.txt","r"); 

    while((ch = fgetc(fp)) != EOF){ 

     if(ch=='\n'){ 
      newLine++; 
     } 
     - 


     if(newLine==2 && ch!='\n'){ 
      printf("ola\n"); 
      if(ch >= 'a' && ch <= 'z'){ 
       printf("ola\n"); 
       temp++; 
       newLine=0; 
      } 
     } 
    } 

    printf("%d\n",temp); 
    fclose(fp); 
    return 0; 
    } 
+0

попробуйте удалить часть else newline = 0. – aa1992

+0

Не могли бы вы привести пример входного файла? – nouney

+0

@nouney «Все великие учителя и реформаторы признали зло в мире, и многие из них отчетливо осознали это зло как моральное зло. Учение Иисуса есть ...» Этот абзац после "зло." и я могу их прочитать, потому что его когда \ n \ n происходит –

ответ

2

После того, как вы видели это первый символ, вы должны сбросить символ новой строки. Вы также должны быть уверены, что видите два или более новых строковых символа без промежуточных символов:

while((ch = fgetc(fp)) != EOF){ 

    while(ch=='\n' && (ch=fgetc(fp))!=EOF && ch=='\n'){ 
     newLine= 2; 
    } 


    if(newLine==2 && ch!='\n'){ 
     if(ch >= 'a' && ch <= 'z'){ 
      temp++; 
     } 
     newLine=0; 
    } 
} 
Смежные вопросы