Подсчитать количество строк начинающихся и заканчивающихся одним символом - C (СИ) (69557)
Формулировка задачи:
Необходимо использовать fopen, fscanf.
Благодарю за помощь!
Решение задачи: «Подсчитать количество строк начинающихся и заканчивающихся одним символом»
textual
Листинг программы
/*В текстовом файле подсчитать количество строк, которые начинаются и оканчиваются одной и той же буквой.*/ #include<conio.h> #include<stdio.h> #include<string.h> int main() { int m=0, k=0; int i=0; char l; FILE *fp; char string[255][255], str[255][255]; int c; if((fp=fopen("1.txt", "r"))!=NULL) { while ((c=fgetc(fp))!=EOF) { if(c!='\n') { string[i][k]=c; string[i][k + 1] = '\0'; k++;//тут сдвигаемся по i строке } else { string[i][k]=c; i++;//переход на новую строку k=0;//обнуляем чтобы записывать с начала новой строки m++;//колчичество строк } } } fclose(fp); int j=0, s=0; for(i=0, j=0; i<m+1;i++) { do { if ((string[i][j]>='a') && (string[i][j]<='z') || (string[i][j]>='A') && (string[i][j]<='Z'))//если буквы эти есть,то { str[i][s]=string[i][j];//пишем в str j++;//передвигаемся по исходному массиву по i строке s++;//передвигаемся по полученному массиву по i строке } else// если другие символы, то двигаемся по i строке дальше j++; } while(string[i][j]!='\0');//пока не встретится '\0' в исходном массиве в i строке j=0;s=0;// обнуляем чтобы начать с новой строки с начала } int len1=0, kol=0; for(i=0; i<m+1;i++) { len1=strlen(str[i]);//длина i строки for(j=0; j<len1; j++) { if((str[i][j]>='A') && (str[i][j]<='Z'))//если большая буква, то меняем на маленькую { str[i][j]=str[i][j]-'A'+'a'; } } } for(i=0; i<m+1;i++) { len1=strlen(str[i]); if((str[i][0]>='a') && (str[i][0]<='z'))//если первый символ буква, то продолжаем дальше... { if(str[i][0]==str[i][len1-1])//если первый элемент и последний элемент совпадают, то тогда выполняем тело цикла { kol++;//счетчик на строки которые нужны } } } printf("B faile %d ctrok(a)(u) kotorbIe na4unautcya i zakanchuBautcya na odny i ty je bykBy", kol); getch(); }
Объяснение кода листинга программы
В этом коде реализована подсчет количества строк в текстовом файле, которые начинаются и заканчиваются одной и той же буквой. Список действий:
- Создаются необходимые переменные и буферы для работы с файлом и строками.
- Открывается файл для чтения.
- В цикле считывается каждый символ из файла до конца строки.
- Если текущий символ не является символом новой строки, он добавляется в текущую строку.
- Когда встречается символ новой строки, текущая строка сохраняется в массиве строк, увеличивается счетчик строк, и начинается новая строка.
- После чтения всего файла, строки проверяются на соответствие условию (начинаются и заканчиваются одной и той же буквой).
- Выводится количество строк, удовлетворяющих условию.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д