Все слова, которые начинаются с большой буквы, вывести большими буквами - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Помогите пожалуйста! Нужно в текстовом файле все слова, которые начинаются с большой буквы, вывести большими буквами. Вот, что есть
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <ctype.h>
  5. #include<time.h>
  6. #include "Prog.c"
  7. void Time_Stamp(FILE *f)
  8. {time_t tmp;
  9. tmp=time(NULL);
  10. fprintf(f,"***%s***\n",ctime(&tmp));
  11. }
  12. int Letter(char Ch)
  13. {int Count;
  14. char Alphabet[]="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
  15. for (Count=0;Count<strlen(Alphabet);Count++)
  16. {if (Ch==Alphabet[Count])
  17. return(1);}
  18. return(0);
  19. }
  20. main(int argc, char *argv[])
  21. {int n,Count,Ch,Word_is;
  22. char slovo;
  23. char buffer[30];
  24.  
  25. FILE *fin, *fout, *flog;
  26.  
  27. if (argc<2)
  28. { puts("Недостаточно аргументов");
  29. printf("Используйте например %s text.txt \n", argv[0]);
  30. puts("Press Enter."); getchar(); exit(0);
  31. }
  32. sprintf(buffer,"%s.log",argv[0]);
  33. if ((flog=fopen(buffer,"a"))==NULL)
  34. { puts("Протокол не открылся. Работа невозможна\n");
  35. puts("Press Enter."); getchar(); exit(0);
  36. }
  37. Time_Stamp(flog);
  38. fputs("Протокол успешно открыт \n",flog);
  39. fputs("Программа приступает к работе \n",flog);
  40. puts("Протокол успешно открыт \n");
  41. puts("Программа приступает к работе \n");
  42. if ((fin=fopen(argv[1],"r"))==NULL)
  43. {
  44. printf("Ошибка открытия файла %s \n",argv[1]);
  45. Time_Stamp(flog);
  46. fprintf(flog,"Ошибка открытия файла %s \n",argv[1]);
  47. puts("Press Enter."); getchar();exit(0);
  48. }
  49. if ((fout=fopen("text","w"))==NULL)
  50. {
  51. printf("Ошибка открытия файла text.txt");
  52. Time_Stamp(flog);
  53. fprintf(flog,"Ошибка открытия файла text.txt");
  54. puts("Press Enter."); getchar(); exit(0);
  55. }
  56. Time_Stamp(flog);
  57. fprintf(flog,"Все файлы открыты успешно \n");
  58. printf("Все файлы открыты успешно \n");
  59. //program
  60. while(1)
  61. {Ch=fgetc(fin);
  62. if(Ch==EOF) break;
  63. if(!Letter(Ch)&&!Word_is)
  64. {fputc(Ch,fout);
  65. continue;}
  66. if(Letter(Ch)&&!Word_is)
  67. {buffer[Count]=Ch;
  68. Count++;
  69. Word_is=1;
  70. continue; //slovo est'
  71. }
  72. if (Letter(Ch)&&Word_is)
  73. {buffer[Count]=Ch;
  74. Count++;
  75. continue;
  76. }
  77. if(!Letter(Ch)&&Word_is) //konec slova
  78. {buffer[Count]='\0';
  79. Count=0;
  80. Word_is=0;
  81. if (isupper(buffer[Count])) //
  82. while(1){ //думаю ошибка где-то здесь
  83. buffer[Count]=toupper(buffer[Count]); //
  84. fprintf(fout,"%s",buffer);} //
  85. else fprintf(fout,"%s",buffer);
  86. fputc(Ch,fout);
  87. }
  88. }
  89. //printf(" %s",buffer);
  90. Time_Stamp(flog);
  91. fprintf(flog,"Результат");
  92. fclose(fin);
  93. fclose(fout);
  94. Time_Stamp(flog);
  95. fprintf(flog,"Работа завершилась успешно");
  96. fclose(flog);
  97. puts("Press Enter."); getchar(); exit(0);
  98. fclose(fin);
  99. }

Решение задачи: «Все слова, которые начинаются с большой буквы, вывести большими буквами»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <ctype.h>
  3.  
  4. int main()
  5. {
  6.     char word[80];
  7.     FILE* in_file;
  8.     char *c;
  9.  
  10.     in_file=fopen("file.txt", "r");
  11.     while(fscanf(in_file, "%79s", word) != EOF)
  12.     {
  13.         if(islower(word[0])) continue;
  14.         c = word;
  15.         while(isalpha(*c)) putc(toupper(*c++), stdout);
  16.         putc('\n', stdout);
  17.     }
  18.     fclose(in_file);
  19. }

Объяснение кода листинга программы

В этом коде:

  1. Объявлены две переменные: word типа char и in_file типа FILE*.
  2. Вводится файл file.txt для чтения.
  3. Переменная c инициализируется значением word.
  4. В цикле, пока файл не закончится, происходит следующее:
    • Проверяется, является ли первая буква слова строчной. Если да, то цикл продолжается.
    • Переменная c обновляется значением word.
    • В цикле, пока текущий символ является буквой, выводится его в верхнем регистре.
    • Выводится символ новой строки.
  5. Файл закрывается.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.875 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы