Improve Article
Save Article
Like Article
Improve Article
Save Article
Like Article
Counting the number of characters is important because almost all the text boxes that rely on user input have certain limitations on the number of characters that can be inserted. For example, the character limit on a Facebook post is 63,206 characters. Whereas, for a tweet on Twitter the character limit is 140 characters and the character limit is 80 per post for Snapchat.
Determining character limits become crucial when the tweet and Facebook post updates are being done through API’s.
Note: This program would not run on online compilers. Please make a text (.txt) file on your system and give its path to run this program on your system.
Approach: The characters can be counted easily by reading the characters in the file using getc() method. For each character read from the file, increment the counter by one.
Below is the implementation of the above approach:
Program:
#include <stdio.h>
#define MAX_FILE_NAME 100
int
main()
{
FILE
* fp;
int
count = 0;
char
filename[MAX_FILE_NAME];
char
c;
printf
(
"Enter file name: "
);
scanf
(
"%s"
, filename);
fp =
fopen
(filename,
"r"
);
if
(fp == NULL) {
printf
(
"Could not open file %s"
,
filename);
return
0;
}
for
(c =
getc
(fp); c != EOF; c =
getc
(fp))
count = count + 1;
fclose
(fp);
printf
(
"The file %s has %d charactersn "
,
filename, count);
return
0;
}
Output:
Note: The text file used to run this code can be downloaded from here
Last Updated :
29 May, 2019
Like Article
Save Article
Подсчет строк, слов и символов в файле
Написать программу, которая считает количество
строк, слов и символов
в текстовом файле.
Решение задачи на языке программирования Python
Цикл for
языка Python извлекает из файлового объекта данные построчно (одну строку на каждой итерации цикла). Таким образом, количество итераций цикла определит количество строк в файле.
Встроенная функция len()
языка Python считает количество элементов в передаваемой в нее структуре. С ее помощью находится количество символов в каждой строке.
Строковый метод split()
разбивает строку на части. По-умолчанию разделение происходит по местам расположения пробелов в строке. Таким образом, мы можем определить количество слов в каждой строке, посчитав с помощью len()
слова в получившемся после применения split()
списке.
На каждой итерации цикла мы должны добавлять полученные значения к переменным, хранящим общие количества строк, слов и символов.
file = open('text.txt') lines = 0 words = 0 symbols = 0 for line in file: lines += 1 words += len(line.split()) symbols += len(line) print("Lines:", lines) print("Words:", words) print("Symbols:", symbols)
Пусть содержимое файла text.txt будет таким:
one two three city town big small
Тогда программа даст следующий результат:
Lines: 3 Words: 7 Symbols: 34
Cимволами считаются не только буквы, также пробелы и переходы на новую строку (символ 'n'
). Если требуется не учитывать переход на новую строку как символ, его можно “отрезать” с помощью строкового метода strip()
. Делается это перед тем, как строка передается в функцию len()
: symbols += len(line.strip('n'))
.
Если данную задачу надо решить без использования продвинутых возможностей (встроенных функций и методов) языка программирования Python, а в рамках изучения алгоритмов или на более “низком” уровне, то программа может выглядеть так:
file = open('text.txt') text = file.read() lines = 0 words = 0 symbols = 0 in_word = False for char in text: symbols += 1 if char == 'n': lines += 1 if char != ' ' and char != 'n' and in_word == False: words += 1 in_word = True elif char == ' ' or char == 'n': in_word = False print("Lines:", lines) print("Words:", words) print("Symbols:", symbols)
Здесь на каждой итерации цикла мы имеем дело не с целой строкой, а с очередным символом. При этом увеличиваем на единицу переменную, хранящую количество символов, и, если текущий символ – это переход на новую строку, переменную для подсчета количества строк.
Для подсчета слов требуется определить в программе еще одну переменную, в которой будет хранится “сигнал”, находимся ли мы внутри слова. Если это так, то очередной непробельный символ не следует считать началом нового слова и не надо увеличивать счетчик слов.
Алгоритм подсчета слов в программе выше следующий. Если текущий символ не пробел И не переход на новую строку, И ранее мы находились вне слова (in_word == False
), то есть соблюдены все три условия сразу, значит началось новое слово. Поэтому увеличиваем счетчик слов и устанавливаем in_word в значение True
. Последнее действие позволит на следующей итерации цикла, при условии обработки второй и послеющих букв слова, не соблюдаться условию in_word == False
и не увеличивать счетчик слов.
Мы “сбрасываем” in_word в False
, только когда встречаем пробельный символ ИЛИ переход на новую строку (любое одно из двух условий).
Программа выше, также как в первом варианте, считает переход на новую строку за символ. Если требуется его исключить, можно поместить увеличение значения счетчика символов в ветку else
:
... for char in text: if char == 'n': lines += 1 else: symbols += 1 ...
В этом случае если очередной символ – это переход на новую строку, увеличивается счетчик строк. В остальных случаях, – счетчик символов.
Если файл большой, то считывать сразу все его содержимое в строковую переменную (text = file.read()
) неблагоразумно. Если читать файл посимвольно (file.read(1))
, то условием завершения работы цикла будет момент возрата методом read()
пустой строки, что означает конец файла (в других языках может быть специальный символ конца файла, доступный через идентификатор EOF
– end of file).
lines = 0 words = 0 symbols = 0 in_word = False with open('text.txt') as file: while True: char = file.read(1) if char == '': break symbols += 1 if char == 'n': lines += 1 if char not in (' ', 'n') and not in_word: words += 1 in_word = True elif char in (' ', 'n'): in_word = False print("Lines:", lines) print("Words:", words) print("Symbols:", symbols)
В этом примере для открытия файла используется оператор with
, который рекомендован для работы с файлами. Выражения char not in (' ', 'n') and not in_word
и char in (' ', 'n')
по смыслу аналогичны соответствующим логическим выражениям из предыдущих вариантов программы.
Больше задач в PDF
что значит это код и как подсчитать кол-во спецсимволов
В данных строках:
print(len([i for i in stroke if i.isdigit()]))
print(len([i for i in stroke if i.isalpha()]))
Эта конструкция ([i for i in stroke]
) называется генератор. В нем вы отбираете в список те символы, которые удовлетворяют условию, указанному в генераторе. Метод isdigit()
проверяет состоит ли строка из цифр, а isalpha()
проверяет состоит ли строка из букв. Далее вы печатаете длину списков. Подробнее вы можете ознакомиться здесь. Я бы вам не рекомендовал начинать с генераторов, если вы не знаете работу словарей, списков, строк и их методов. Вот, вариант, понятный и, впринципе, удобный для записи:
string = '"fddfs456"'
d = {'Спец.символы': 0, 'Буквы': 0, 'Цифры': 0}
for i in string:
if i.isalpha():
d['Буквы'] += 1
elif i.isdigit():
d['Цифры'] += 1
else:
d['Спец.символы'] += 1
print(d['Цифры'], d['Буквы'], d['Спец.символы'])
На чтение 3 мин Просмотров 6.6к. Опубликовано
В этой статье мы рассмотрим один из базовых навыков программирования на языке 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 )
Перейти к содержанию
Посчитать количество строк в файле и количество слов и символов в каждой строке
Просмотров 8к. Обновлено 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
Переход на новую строку учитывается как символ.