Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 5.00/25: Рейтинг темы: голосов - 25, средняя оценка - 5.00
1 / 1 / 1
Регистрация: 22.12.2010
Сообщений: 128

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

14.01.2014, 14:27. Показов 4895. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Объясните пожалуйста, почему при нахождении количества символов в полученной из TStringList функцией m.Length(), мне пришлось вычитать 2. То есть
C++
1
int n = m.Length() - 2;
Где не почитаю, для нахождения последнего символа вычитают единицу. Или я не правильно, что то сделал?
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
TStringList *text_list = new TStringList();
.......
void __fastcall TForm1::Button3Click(TObject *Sender) {
 
    text_list->Clear();
    Memo1->Clear();
    OpenDialog1->Filter = "*.txt";
    if (OpenDialog1->Execute())
        Memo1->Lines->LoadFromFile(OpenDialog1->FileName);
    text_list->LoadFromFile(OpenDialog1->FileName);
 
}
 
// ---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender) {
    if (Memo1->Lines->Count == 0)
        return;
 
    char text_symbol = (text_list->Text)[(text_list->Text).Length() - 2];
    String m = text_list->Text;
    int n = m.Length() - 2; // всего символов
    ShowMessage("\r\nсимволов в строке: " + IntToStr(n)
        + "\r\nпоследний символ: " + text_symbol);
 
    Memo1->Lines->Add("\r\n" + m + "последний символ в строке " +
        "\r\nдлина строки:  " + IntToStr(n) + "\r\nсимвол:  " + text_symbol);
 
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.01.2014, 14:27
Ответы с готовыми решениями:

Подсчет количества символов в строке и поиск самого длинного слова
Здравствуйте) У меня возникла прблемка не знаю как и решить задали написать программку с комментариями Помогите решить В С++ builder...

Подсчёт слов в строке. Подсчёт символов в словах строки
Начал изучение строк в С++. Решая задачу по поиску количества строк и количеству указанных символов упёрся лбом в стену. Теорию понял:...

Подсчет числа символов указанного типа в любой строке символов на SHELL
Здравствуйте)) :) Помогите, пожалуйста , разработать программу подсчета числа символов указанного типа в любой строке символов. Строка...

23
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
14.01.2014, 18:04
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Oleg34 Посмотреть сообщение
почему неправильно считать через Length()?
Потому, что в случае двух строк в тексте: "ОдинДва" длина считается с учетом спецсимволов "Один\n\rДва\n\r" - 11 в итоге вместо 7.
0
1 / 1 / 1
Регистрация: 22.12.2010
Сообщений: 128
14.01.2014, 18:24  [ТС]
Я это понимаю, что считаются и пробелы и знаки переноса. Но я читал, что Признаком конца, именно конца строки, является нулевой символ \0. То есть это два символа: \ и 0 . Или я не так понимаю?

Добавлено через 2 минуты
У меня вся суть в том, что бы посчитать сколько символов в строке пришло, отнять нуль-терминатор и это будет нужный мне символ. Определить строку в char и подставив индексом подсчитанное значение посмотреть его.
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
14.01.2014, 18:27
Когда вы считываете текстовый файл в структуру stringlist, читается все подряд до первого встреченного нуля (null terminate). В том числе и спецсимволы; и они считаются по признаку Length. (Аналог такого списка - Memo->Lines); а отдельные строки, входящие в список, ограничены спецсимволами "конец строки" "возврат каретки", которые в длине этой отдельной строки не учитываются. Я так понимаю... .
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
14.01.2014, 18:57
А как на счет использования Trim?
К примеру:
C++
1
2
String m = text_list->.... // получаем как-нибудь
m = m.TrimRight(); // и отрезаем
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.01.2014, 18:57

Подсчет цифр, символов-разделителей и прочих символов в строке
#include <stdio.h> #include <locale.h> /* подсчет цифр, символов-разделителей и прочих символов */ main() { ...

Подсчет символов в строке
Помогите написать программу подсчета символов в строке. Спасибо.

Подсчет символов в строке
помогит дана строка в ней нужно подсчитать сколько раз символы которые в ней присувствуют повторяются Добавлено через 2 минуты в...

Подсчет символов в строке
Здравствуйте, написал простенькую программку, которая подсчитывает повторение всех символов в строке, но возникли следующие вопросы: 1) как...

Подсчет символов в строке
по К и Р надкнулся на такой код double nc; for(nc=0; getchar()!=EOF; ++nc); я решил как то изменить код так,чтобы проги...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Новые блоги и статьи
Новая последнея моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки Правым кликом по серверу -> отладочная информация -> edit Заменить "net": "raw", на "net": "tcp", Нажать кнопку reload.
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru