Как посчитать количество символов в строке си
Перейти к содержимому

Как посчитать количество символов в строке си

  • автор:

Подсчёт символов в строке

У меня меня есть строка, в которой могут быть символы как английского, так и русского алфавитов, и мне не вполне понятно, как посчитать в такой строке количество символов.

string test = "ТестTest"; cout  

Как известно, в потоке выхода мы получим не количество символов, а количество байт, то есть не 8, а 12. А хотелось бы как-то узнать именно количество символов. Какое решение проблемы в данном ситуации будет правильным?

Отслеживать

28.5k 12 12 золотых знаков 58 58 серебряных знаков 118 118 бронзовых знаков

Как посчитать количество символов в строке си

Сообщение от Serge_Bliznykov

боюсь, что не всё так просто и очевидно.

richTextBox1.WordWrap = false; int firstcharindex = richTextBox1.GetFirstCharIndexOfCurrentLine(); int currentline = richTextBox1.GetLineFromCharIndex(firstcharindex); string currentlinetext = richTextBox1.Lines[currentline]; int count = currentlinetext.Count(); richTextBox1.WordWrap = true; label1.Text = count.ToString();

Этот код подсчитывает количество строк где стоит каретка - то что я искал - ребята с сайта http://www.cyberforum.ru/windows-for. ad2534821.html помогли
Вдруг кому то пригодится )))

Последний раз редактировалось новичок0310; 21.11.2019 в 22:26 .

новичок0310
Посмотреть профиль
Найти ещё сообщения от новичок0310

Посчитать количество символов в строке

Хелп. Я только недавно начал изучать С++. Помогите сделать программу. Нужно посчитать количество всех элементов в строке.

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Посчитать количество символов в строке
Объясните как работает этот код. Он должен посчитать количество каждой буквы и вывести в порядке.

Посчитать количество символов в строке
Задание: Дана строка. Подсчитать количество различных символов, которые не являются буквами или.

В строке посчитать количество разных символов
Хелоу гайс,как изменить код, чтобы считались именно разные символы , а не все? #include <iostream>.

Посчитать в строке количество латинских символов
Запросить у пользователя строку и посчитать в ней количество символов латинского алфавита

Регистрация: 11.06.2008
Сообщений: 56

ЦитатаСообщение от kuidreS Посмотреть сообщение

Хелп. Я только недавно начал изучать С++. Помогите сделать программу. Нужно посчитать количество всех элементов в строке.

1 2 3 4 5
#include . char* str = "Hello World"; int count = strlen(str); printf("Количество символов в строке \"Hello World\" = %u\n", count);

2021 / 1620 / 489
Регистрация: 31.05.2009
Сообщений: 3,005

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
#include int strLength(const char* str) { int size = 0; while(*str++) ++size; return size; } int main() { const char* str = "asdasdqwdqd"; printf( "%d\n", strLength(str) ); return 0; }

Регистрация: 28.03.2010
Сообщений: 37
Посмотрите пожалуйста и скажите где ошибка:

1 2 3 4 5 6 7 8 9 10 11 12 13
#include #include #include using namespace std; void main() { char *str; cout"Please, enter the string: "; cin>>str; int count = strlen(str); cout"Sum of elements= "count; getch(); }

Регистрация: 13.05.2010
Сообщений: 7

1 2 3 4 5 6 7 8 9 10 11 12 13
#include #include #include using namespace std; int main() { char *str; cout"Please, enter the string: "; cin>>str; int count = strlen(str); cout"Sum of elements= "count; getch(); return 0; }

Функция main() должна возвращать значение типа int.
Регистрация: 11.06.2008
Сообщений: 56

ЦитатаСообщение от kuidreS Посмотреть сообщение

Посмотрите пожалуйста и скажите где ошибка
В Вашем случае надо выделить свободную память для указателя, определив его размер:

1 2 3 4 5 6 7 8
char* str = new char[80]; cout  "Please, enter the string: "; cin >> str; int count = strlen(str); cout  "Sum of elements= "  count; getch(); delete [] str; return;

Добавлено через 2 минуты

ЦитатаСообщение от tony733 Посмотреть сообщение

Функция main() должна возвращать значение типа int.
Необаязательно. Она может возвращать и void.
Но в конец программы нужно вставить ключевое слово

return

Регистрация: 13.05.2010
Сообщений: 7

ЦитатаСообщение от kuidreS Посмотреть сообщение

Посмотрите пожалуйста и скажите где ошибка:

1 2 3 4 5 6 7 8 9 10 11 12 13
#include #include #include using namespace std; void main() { char *str; cout"Please, enter the string: "; cin>>str; int count = strlen(str); cout"Sum of elements= "count; getch(); }

ЦитатаСообщение от Cooler2 Посмотреть сообщение

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

1 2 3 4 5 6 7
char* str = new char[80]; cout  "Please, enter the string: "; cin >> str; int count = strlen(str); cout  "Sum of elements= "  count; getch(); delete [] str;

насколько я понимаю при такой операции память выделится вот здесь
cin>>str;

Добавлено через 3 минуты

ЦитатаСообщение от Cooler2 Посмотреть сообщение

Необаязательно. Она может возвращать и void.
Но в конец программы нужно вставить ключевое слово

Ну можно наверно, не спорю, но вроде как стандартнее записать int) Хотя не буду особо спорить, возможно я неправ)

Эксперт PythonЭксперт JavaЭксперт CЭксперт С++

12243 / 7373 / 1734
Регистрация: 25.07.2009
Сообщений: 13,521

ЦитатаСообщение от tony733 Посмотреть сообщение

насколько я понимаю при такой операции память выделится вот здесь
cin>>str;

Не правильно понимаете. Ничего тут не должно выделяться. Мало того, при таком подходе, если память и выделена, но меньше, чем вводимая строка, будет переполнение.

Регистрация: 11.06.2008
Сообщений: 56
kuidreS,
Рекомендую вместо

cin >> str;

Воспользоваться функцией получения всей введенной строки:

cin.getline(str, 80, '\n');

Где str - указатель под который выделена память в свободном хранилище,
80 - максимальное количество символов для прочтения
'\n' - символ, прекращающий процесс считывания строки. (Тут можно не только этот символ использовать).

Регистрация: 13.05.2010
Сообщений: 7

ЦитатаСообщение от easybudda Посмотреть сообщение

Не правильно понимаете. Ничего тут не должно выделяться. Мало того, при таком подходе, если память и выделена, но меньше, чем вводимая строка, будет переполнение.

Спасибо за разъяснение, терь буду знать) раз уж начали разговор- не могли бы вы посмотреть вот это?
https://www.cyberforum.ru/cpp-. 29329.html

Регистрация: 27.05.2010
Сообщений: 9
и наконец окончательный вариант:

1 2 3 4 5 6 7 8 9 10 11 12 13
#include #include #include using namespace std; void main() { char* str = new char[80]; cout"Please, enter the string: "; cin.getline(str, 80, '\n'); int count = strlen(str); cout"Sum of elements= "count; getch(); }

Регистрация: 21.03.2015
Сообщений: 3

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
#define _CRT_SECURE_NO_WARNINGS #include "stdafx.h" #include using namespace std; const int n = 80; void Strin(char[]); void main() { setlocale(LC_ALL, "RUS"); char str[n]; cout  "enter string"  endl; gets(str); Strin(str); system("pause"); } void Strin(char str[]) { int counter = 0; for (int i = 0; i  n; i++) { if (isalnum(str[i])) { if (i != 0) { int k; for (k = i - 1; k != 0; k--) { if (str[i] == str[k]) break; } if (str[i] == str[k]) continue; } cout  str[i]  "="; for (int j = i + 1; j  n - 1; j++) { if (str[i] == str[j]) { counter++; } } cout  counter + 1  endl; counter = 0; } } }

Регистрация: 18.03.2015
Сообщений: 5

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
# include # include using namespace std; int main() { char mas1[5]; cout"Vvedite stroku "; gets(mas1); coutendl; for(int i=0;i5;i++) coutmas1[i]; _getch(); return 0; }

не могу никак посчитать сколько символов в строке которую ввели

Добавлено через 53 минуты
нашол ответ )) #include

Добавлено через 4 минуты

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
# include # include #include using namespace std; int main() { setlocale(LC_ALL, "RUS"); char mas1[100]; char len; cout"Vvedite stroku "; gets(mas1); coutendl; len = strlen(mas1); for(int i=0;ilen;i++) { coutmas1[i]; } _getch(); return 0; }

Посчитать количество слов в строке

Для ввода строки нельзя использовать функцию cin в данном случае, поскольку эта функция осуществляет ввод строки до пробела или перевода строки. Поэтому воспользуемся методом get функции cin :

cin.get(УказательНаСтроку, МаксимальноеЧислоСимволов);

Условием окончания строки является символ с кодом равным 0 (нуль-символ, ‘\0’ ). После ввода строки организуем цикл по элементам строки до ее окончания. Перед циклом убираем пробелы, введенные в начале строки (до первого слова). Условием определения следующего слова в строке является наличие какого-то символа после пробела. Именно это условие увеличивает счетчик count на 1.

Реализация на C++

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

Количество слов в строке

Результат выполнения

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *