Перейти к содержанию
Посчитать количество строк в файле и количество слов и символов в каждой строке
Просмотров 8.1к. Обновлено 15 октября 2021
В текстовом файле посчитать количество строк, а также для каждой отдельной строки определить количество в ней символов и слов.
Подсчет строк:
Ввести счетчик, присвоить ему 0.
Пока не будет достигнут конец файла, считывать очередную строку файла и увеличивать счетчик на 1.
Подсчет символов в строке:
Измерять длину очередной строки с помощью встроенный в язык программирования функции.
Подсчет слов в строке:
- Ввести счетчик слов и присвоить ему 0.
- Ввести флаговую переменную и присвоить ей 0 (сигнал нахождения вне слова).
- Пока не будет достигнут конец строки:
- Если очередной символ не пробел и флаг указывает на нахождение вне слова, то увеличить счетчик слов и присвоить флаговой переменной 1 (сигнал нахождения внутри слова).
- Если же очередной символ пробел, то присвоить флагу 0.
Pascal
var
f: text;
s: string;
line, chr, wrd: word;
i: byte;
flag: boolean;
begin
assign(f,'text.txt');
reset(f);
line := 0;
while not EOF(f) do begin
readln(f,s);
write(s, ' - ');line := line + 1;
chr := length(s);
write(chr, ' симв., ');wrd := 0;
flag := false;
for i:=1 to chr do
if (s[i] <> ' ') and (flag = false) then begin
wrd := wrd + 1;
flag := true;
end
else
if s[i] = ' ' then flag := false;
writeln(wrd, ' сл.');
end;
close(f);
writeln(line,' стр.');
end.
Hello world! - 12 симв., 2 сл.
Привет мир! - 20 симв., 2 сл.
One, two, three - 15 симв., 3 сл.
Один, два, три - 24 симв., 3 сл.
4 стр.
Файл выполнен в среде GNU/Linux, компилятор FreePascal. Русские символы считаются за 2 символа. Например, в данном примере во второй строке 9 кириллических символа, пробел и восклицательный знак: 18 + 2 = 20 символов.
Язык Си
посчитать количество строк в файле си
#include < stdio.h>
#include < string.h>
#define N 255
main() {
FILE *f;
char s[N];
unsigned short line, word, flag, i;
line = 0;
f = fopen("text.txt","r");
while (fgets(s, N, f) != NULL) {
line += 1;word = 0;
flag = 0;
for (i=0; i < strlen(s); i++)
if (s[i] != ' ' && flag == 0) {
word += 1;
flag = 1;
} else
if (s[i] == ' ') flag = 0;printf("%st%ld симв., %d сл.n",s,strlen(s),word);
}
printf("%d стр.n", line);
fclose(f);
}
Hello world!
13 симв., 2 сл.
Привет мир!
21 симв., 2 сл.
One, two, three
16 симв., 3 сл.
Один, два, три
25 симв., 3 сл.
4 стр.
Тот же «эффект», что и в Паскале: кириллический символ считается за 2.
Функция fgets() считывает строку вместе с символом перехода на новую строку. Аргумент N не позволяет считать больше указанного количества символов, но длина строки определяется по количеству считанных (т.е. фактической длиной строки).
Python
python количество строк в файле
f = open('text.txt')
line = 0
for i in f:
line += 1flag = 0
word = 0
for j in i:
if j != ' ' and flag == 0:
word += 1
flag = 1
elif j == ' ':
flag = 0print(i,len(i),'симв.',word,'сл.')
print(line,'стр.')
f.close()
Hello world!
13 симв. 2 сл.
Привет мир!
12 симв. 2 сл.
One, two, three
16 симв. 3 сл.
Один, два, три
15 симв. 3 сл.
4 стр.
Символ перехода на новую строку учитывается.
КуМир
использовать Файлы П
алг
нач
цел f, line, word, char, in, i
лит s
line := 0
word := 0
char := 0
f := открыть на чтение ("текст.txt")
нц пока не конец файла (f)
Фввод f, s
line := line + 1
вывод s, нс
char := char + длин(s)
in := 0
нц для i от 1 до длин(s)
если s[i] <> " " и in = 0 то
word := word + 1
in := 1
иначе
если s[i] = " " то in := 0 все
все
кц
кц
закрыть(f)
вывод нс, "строк - ", line, нс
вывод "слов - ", word, нс
вывод "символов - ", char
кон
Привет, Мир!
Hello World!
5, 4 ...строк - 3
слов - 7
символов - 32
Здесь считается общее количество слов и символов.
Basic-256
open "text.txt"
ln = 0
while not eof
ln = ln + 1
s$ = readline
i = 1
word = 0
flag = 0
while i <= length(s$)
c$ = mid(s$,i,1)
if c$ <> " " and flag = 0 then
word = word + 1
flag = 1
else
if c$ = " " then flag = 0
endif
i = i + 1
endwhileprint s$ + length(s$) + ", " + word
endwhile
closeprint "Строк: " + ln
Hello world!
13, 2
Привет мир!
12, 2
One, two, three
16, 3
Один, два, три
15, 3
Строк: 4
Переход на новую строку учитывается как символ.
Редактировать
Символы и основные операции над ними
Символы имеют тип char, занимают 2 байта и хранятся в кодировке Unicode (UTF-16).
var c1: char;
var c2 := 'z';
Для преобразования символа c
в код используется функция Ord(c)
, для обратного преобразования кода i в символ используется функция Chr(i)
.
begin
var c := 'ю';
Print(Ord(c)); // 1102
Print(Chr(1102)); // ю
end.
Классический способ определить символ, следующий за данным в кодовой таблице, — это преобразовать символ в код, прибавить к коду число и потом преобразовать полученный код снова в символ:
Аналогично определяется предыдущий символ
Методы типа char
Методы, встроенные в тип char, делятся на две категории:
- проверяющие, принадлежит ли символ указанной категории:
c.IsDigit
,c.IsLetter
,c.IsLower
,c.IsUpper
- преобразующие символ:
c.ToUpper
,c.ToLower
,c.ToDigit
.
Отметим, что c.IsDigit
эквивалентно (c >= '0') and (c <= '9')
и эквивалентно c in '0'..'9'
Для c.IsLower
, c.IsLower
, c.IsUpper
такой простой аналогии нет. Дело в том, что в этих методах проверяются все символы, являющиеся буквами в каком-то алфавите народов мира (в частности, английские и русские)
Отметим также, что c.IsLower
возвращает True
только если это буква в нижнем регистре — для не букв возвращается False
.
Строки
Введение
Отметим, что для строк имеется много операций и методов, не все из которых мы рекомендуем для школьников.
Основная причина — многие методы строк в .NET считают, что строки индексируются с нуля, а в Паскале строки индексируются с 1.
Для устранения этой дилеммы при работе со школьниками мы не используем методы строк, которые работают с индексами, индексируемыми с нуля. Для них существуют эквивалентные замены внешними функциями, которые предполагают, что строки индексируются с 1.
Индексация строк
Строки в Паскале индексируются с 1. К символам строк можно обращаться по индексам — s[i]
.
Например:
begin
var s: string;
s := 'тор';
Print(s[1],s[2],s[3]);
end.
Символы строк можно менять:
begin
var s := 'пир';
s[1] := 'м';
Print(s); // мир
end.
Можно использовать индексацию с конца: s[^i] обозначает i-тый символ с конца
begin
var s := 'мир';
s[^1] := 'г';
Print(s); // миг
end.
Циклы по строкам
begin
var s := 'привет';
for var i:=1 to s.Length do
s[i] := Chr(Ord(s[i])+1);
Print(s);
end.
foreach var c in s do
Print(c);
Операции +, *n и in
Строки можно складывать и умножать на целое положительное число
Пример. Генерация строки ‘abcdefghijklmnopqrstuvwxyz’
Идея. Начать с пустой строки. Всякий раз в цикле добавлять к строке символы от ‘a’ до ‘z’
Код
begin
var s := '';
for var c := 'a' to 'z' do
s += c;
end.
Методы Count, CountOf, Where
Чтобы посчитать количество символов в строке, удовлетворяющих определённому условию, используется метод Count. Если нужно посчитать, сколько раз встречается определенный символ, используется более простой метод CountOf
begin
var s := 'абракадабра';
s.CountOf('а').Print;
s := 'а123бр45а67к89адабра';
s.Count(c -> c.IsDigit).Print;
end.
Если в строке надо отфильтровать только определенные символы, используется метод Where. Он возвращает последовательность символов, которую можно назад преобразовать к строке, используя метод JoinToString:
begin
var s := 'а123бр45а67к89адабра';
s := s.Where(c -> c.IsLetter).JoinToString;
end.
s.ToWords и разбиение строки на слова
Метод s.ToWords разбивает строку на массив слов, используя пробел в качестве разделителя. Полученный массив можно преобразовать и слить в строку, используя метод JoinToString:
begin
var s := 'как однажды жак звонарь головой сломал фонарь';
var a := s.ToWords;
Sort(a);
s := a.JoinToString
end.
По умолчанию JoinToString разделяет слова пробелами
Функция Pos и процедуры Delete, Insert
Pos(subs,s)
возвращает позицию первого вхождения подстроки subs
в сторке s
или 0 если подстрока не найдена
Pos(subs,s,from)
начинает искать подстроку в строке с позиции from
.
Следующий код выводит позиции всех вхождений s1 в s:
begin
var s := 'абракадабра';
var s1 := 'бра';
var p := Pos(s1,s);
while p>0 do
begin
Print(p);
p := Pos(s1,s,p+s1.Length);
end;
end.
На чтение 3 мин Просмотров 7.5к. Опубликовано
В этой статье мы рассмотрим один из базовых навыков программирования на языке Python — подсчет количества символов в строке. Этот навык часто используется при работе с текстовыми данными, поэтому является необходимым для начинающих и опытных программистов.
Подсчёт символов в строке может быть полезным во многих случаях, например:
- Проверка ограничений на длину вводимого текста в веб-формах, где ограничено количество символов, которые можно ввести в определенное поле.
- Подсчет количества букв или цифр в тексте для анализа текстовых данных или статистики.
- Анализ и обработка текстовых файлов.
Содержание
- Основные способы подсчёта символов в строке
- Подсчёт символов в строке с помощью встроенной функции len()
- Ручной подсчет символов с помощью цикла
Основные способы подсчёта символов в строке
В Python существует несколько способов подсчета количества символов в строке. Один из самых простых и распространенных способов — использование функции len()
, которая возвращает количество символов в строке. Этот метод может использоваться для подсчета любых символов, включая буквы, цифры, знаки препинания и пробелы. Кроме того, для подсчета символов в строке, можно использовать циклы.
Подсчёт символов в строке с помощью встроенной функции len()
В Python есть встроенная функция len()
, которая позволяет узнать длину строки, т.е. количество символов в ней. Функция len()
принимает аргументом строку и возвращает целое число, равное количеству символов в этой строке. Для того чтобы использовать функцию len()
для подсчета символов в строке, необходимо передать в качестве аргумента эту строку. Например, если у вас есть переменная my_string
и вы хотите узнать, сколько символов содержится в этой строке, то вы можете вызвать функцию len(my_string)
, и она вернет число, равное количеству символов в my_string
.
Рассмотрим пример:
my_string = "Hello, World!"
length = len(my_string)
print("Длина строки: ", length)
В этом примере мы создали переменную my_string
, содержащую строку «Hello, World!», а затем использовали функцию len()
для подсчета количества символов в этой строке. Результат, возвращаемый функцией len()
, присваивается переменной length
. Наконец, мы выводим сообщение на экран, которое сообщает нам длину строки. В этом случае, результатом будет «Длина строки: 13», так как в строке «Hello, World!» содержится 13 символов.
Ручной подсчет символов с помощью цикла
Если вам нужно подсчитать количество символов в строке без использования встроенных функций, вы можете воспользоваться циклом. Для этого можно создать переменную, которая будет увеличиваться на единицу при каждой итерации цикла. Внутри цикла нужно пройтись по каждому символу строки и увеличивать значение переменной на единицу. В конце цикла значение переменной будет равно количеству символов в строке. Например, для строки «Hello, world!» можно использовать следующий код:
string = "Hello, world!"
count = 0
for char in string:
count += 1
print("Количество символов в строке:", count)
Этот код пройдется по каждому символу в строке «Hello, world!» и увеличит значение переменной count на единицу при каждой итерации цикла. После того, как цикл завершится, в переменной count будет храниться количество символов в строке.
( 2 оценки, среднее 3 из 5 )
to continue to Google Sites
Not your computer? Use Guest mode to sign in privately. Learn more
Improve Article
Save Article
Like Article
Improve Article
Save Article
Like Article
We have given a string and the task is to count number of characters in a string str in PHP. In order to do this task, we have the following methods in PHP:
Method 1: Using strlen() Method: The strlen() method is used to get the length of a given string str. Length of the string including all the white spaces and special characters in this method.
Syntax:
strlen( $string )
Example :
PHP
<?php
$str
=
" Geeks for Geeks "
;
$len
=
strlen
(
$str
);
echo
$len
;
?>
Method 2: Using mb_strlen() Method: The mb_strlen() method is used to return the number of characters in a string having character encoding. A multi-byte character is counted as 1.
Syntax:
mb_strlen($str, $encoding);
Note: Before using this function, install the php7.0-mbstring package using the following command:
sudo apt install php7.0-mbstring
Example :
PHP
<?php
$str
=
" Geeks for Geeks "
;
$len
= mb_strlen(
$str
);
echo
$len
;
?>
Output
19
Method 3: Using iconv_strlen() Method: The iconv_strlen() method is used to get the character count of a string, as an integer.
Syntax:
int iconv_strlen( string $str, string $charset = ini_get("iconv.internal_encoding"))
Example :
PHP
<?php
$str
=
" Geeks for Geeks "
;
$len
= iconv_strlen(
$str
);
echo
$len
;
?>
Method 4: Using grapheme_strlen() Method: The grapheme_strlen() method is used to get the string length in grapheme units (not bytes or characters).
Syntax:
int grapheme_strlen(string $input)
Example :
PHP
<?php
$str
=
" Geeks for Geeks "
;
$len
= grapheme_strlen(
$str
);
echo
$len
;
?>
Last Updated :
21 May, 2020
Like Article
Save Article