Подсчёт символов в строке
У меня меня есть строка, в которой могут быть символы как английского, так и русского алфавитов, и мне не вполне понятно, как посчитать в такой строке количество символов.
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) Хотя не буду особо спорить, возможно я неправ)
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
Результат выполнения