2015-06-05 135 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部分换行符= 0。 – aa1992

+0

您能否提供一个输入文件的例子? – nouney

+0

@ nouney“所有伟大的教师和改革者都认识到世界上的邪恶,并且他们中的许多人已经清楚地认识到这种邪恶是道德上的罪恶,耶稣的教义是......” 该段落是“邪恶。”我可以阅读它们,因为它发生时\ n \ n –

回答

2

你已经看到了这第一个字符后,必须重新换行。您还希望确保您看到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; 
    } 
} 
相关问题