Мне нужен вход со строками в C - PullRequest
0 голосов
/ 28 марта 2019

Мне нужно прочитать строки из файла в C, и это работает, теперь мне нужно найти в каждой строке слова, которые начинаются с заглавной буквы. Любой вход?

Пример: 1) Windows - хорошая ОС 2) Linux - с открытым исходным кодом

Слова с заглавной буквой: Windows, OS, Linux, Open, Source.

#include <stdio.h>

int main()
{
  /* dichiarazioni variabili */

  FILE *fp;
  char vet1[100];
  char vet2[100];

  fp = fopen("file.txt", "r"); /* apro il file contenente la stringa */

  if (fp == NULL) {
    printf("\nIl file non esiste!\n");
  }

  while (!feof(fp)) {
    fgets(vet1, 100, fp);
    printf("%s\n", vet1);
  }

  fclose(fp);
}

1 Ответ

1 голос
/ 28 марта 2019

Определить заглавную букву так же просто, как прочитать руководство «ascii» в любом дистрибутиве GNU / Linux, где вы можете обнаружить, что все прописные буквы от A до Z имеют шестнадцатеричное число от 0x40 до 0x5A соответственно с учетом этого:

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


int main( int argc,char *argv[])
{
  char *buffer,c;
  size_t bufsize = 32; // add all the buffer that you need
  size_t characters;
  FILE *fp;
  if(argc != 2)
    return -1;
  buffer = (char *)malloc(bufsize * sizeof(char));
  fp = fopen(argv[1],"r");
  if( fp == NULL)
     return -2;
  while( !feof(fp) )
  {
    characters = getline(&buffer,&bufsize,fp);
    buffer[characters-1]='\0';
    if ( buffer[0] > 0x40 && buffer[0] < 0x5A )
        printf("buffer = %s",buffer);
  }

  return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...