Подсчитать количество строк начинающихся и заканчивающихся одним символом - C (СИ) (69557)

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

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

Необходимо использовать fopen, fscanf. Благодарю за помощь!

Решение задачи: «Подсчитать количество строк начинающихся и заканчивающихся одним символом»

textual
Листинг программы
  1. /*В текстовом файле подсчитать количество строк,
  2. которые начинаются и оканчиваются одной и той же буквой.*/
  3.  
  4. #include<conio.h>
  5. #include<stdio.h>
  6. #include<string.h>
  7. int main()
  8. {
  9.     int m=0, k=0;
  10.     int i=0;
  11.     char l;
  12.     FILE *fp;
  13.     char string[255][255], str[255][255];
  14.     int c;
  15.     if((fp=fopen("1.txt", "r"))!=NULL)
  16.     {
  17.         while ((c=fgetc(fp))!=EOF)
  18.         {
  19.             if(c!='\n')
  20.             {
  21.             string[i][k]=c;
  22.             string[i][k + 1] = '\0';
  23.             k++;//тут сдвигаемся по i строке
  24.             }
  25.             else
  26.             {
  27.                 string[i][k]=c;
  28.                 i++;//переход на новую строку
  29.                 k=0;//обнуляем чтобы записывать с начала новой строки
  30.                 m++;//колчичество строк
  31.             }
  32.         }
  33.     }
  34.     fclose(fp);
  35.         int j=0, s=0;
  36.     for(i=0, j=0; i<m+1;i++)
  37.         {
  38.             do
  39.             {  if ((string[i][j]>='a') && (string[i][j]<='z') || (string[i][j]>='A') && (string[i][j]<='Z'))//если буквы эти есть,то
  40.                     {
  41.                         str[i][s]=string[i][j];//пишем в str
  42.                         j++;//передвигаемся по исходному массиву по i строке
  43.                         s++;//передвигаемся по полученному массиву по i строке
  44.                     }
  45.                     else// если другие символы, то двигаемся по i строке дальше
  46.                         j++;
  47.             }
  48.             while(string[i][j]!='\0');//пока не встретится '\0' в исходном массиве в i строке
  49.             j=0;s=0;// обнуляем чтобы начать с новой строки с начала
  50.         }
  51.         int len1=0, kol=0;
  52.  
  53.         for(i=0; i<m+1;i++)
  54.         {
  55.             len1=strlen(str[i]);//длина i строки
  56.             for(j=0; j<len1; j++)
  57.             {
  58.                 if((str[i][j]>='A') && (str[i][j]<='Z'))//если большая буква, то меняем на маленькую
  59.                 {
  60.                     str[i][j]=str[i][j]-'A'+'a';
  61.                 }
  62.             }
  63.         }
  64.         for(i=0; i<m+1;i++)
  65.         {
  66.             len1=strlen(str[i]);
  67.             if((str[i][0]>='a') && (str[i][0]<='z'))//если первый символ буква, то продолжаем дальше...
  68.             {
  69.                 if(str[i][0]==str[i][len1-1])//если первый элемент и последний элемент совпадают, то тогда выполняем тело цикла
  70.                 {
  71.                     kol++;//счетчик на строки которые нужны
  72.                 }
  73.             }
  74.         }
  75.         printf("B faile %d ctrok(a)(u) kotorbIe na4unautcya i zakanchuBautcya na odny i ty je bykBy", kol);
  76.  
  77.     getch();
  78. }

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

В этом коде реализована подсчет количества строк в текстовом файле, которые начинаются и заканчиваются одной и той же буквой. Список действий:

  1. Создаются необходимые переменные и буферы для работы с файлом и строками.
  2. Открывается файл для чтения.
  3. В цикле считывается каждый символ из файла до конца строки.
  4. Если текущий символ не является символом новой строки, он добавляется в текущую строку.
  5. Когда встречается символ новой строки, текущая строка сохраняется в массиве строк, увеличивается счетчик строк, и начинается новая строка.
  6. После чтения всего файла, строки проверяются на соответствие условию (начинаются и заканчиваются одной и той же буквой).
  7. Выводится количество строк, удовлетворяющих условию.

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


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

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

6   голосов , оценка 4.167 из 5

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

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

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