Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
4945 / 2409 / 530
Регистрация: 05.06.2008
Сообщений: 7,511
Записей в блоге: 3
1

Цикл while (удаление символа из строки)

09.10.2013, 20:40. Просмотров 972. Ответов 6
Метки нет (Все метки)

Здравствуйте!!

Ребята подскажите по такому вопросу вот код

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  int a = 2;
  while(isalpha(Edit1->Text[a]))
  {
    Edit1->Text = Edit1->Text.Delete(a,1);
    a++;
  }
 
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::FormShow(TObject *Sender)
{
Edit1->Text =  "Stttt30";
}
Вопрос: Почему при нажатии на кнопку удаляется не все буквы tttt, а почему-то сначало 2 буквы tt, потом нажимаю кнопку удаляется ещё одна буква, и ещё раз нажимаю на кнопку удаляется последняя t.

Заранее благодарен за ответ
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.10.2013, 20:40
Ответы с готовыми решениями:

Удаление символа из строки
Написал ранее процедуру проверки строки на последний символ и если он имеется вырезаю её: public...

Удаление символа из строки
Здравствуйте. Пишу программу для тестирования. Читаю файл построчно, если первый символ "/", то...

Удаление символа из строки
Как удалить символ (скобку) в заданной символьной строке?

Удаление символа из строки
Подскажите пожалуйста где я затупил ) Программа уделяет нужный символ, но после этого дописывает...

6
-2 / 4 / 2
Регистрация: 13.03.2013
Сообщений: 198
09.10.2013, 21:03 2
Я так понял, текст это массив из двух элементов, ведь a=2 , вот оно и удаляет 2. Очищает массив. Потом внутри цикла вайл, а++ , он уже не возвращается к строке int a= 2. он ограничен скобками и выполняет только
C++
1
2
3
4
{
    Edit1->Text = Edit1->Text.Delete(a,1);
    a++;
  }

Ах да, и я С вообще не знаю, так что все что я написал может быть полным бредом
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
29948 / 19691 / 7699
Регистрация: 22.10.2011
Сообщений: 34,328
Записей в блоге: 6
09.10.2013, 21:10 3
Sasha, После того, как первая t удалена, у тебя уже а == 3, потом, после удаления t с третьей позиции, a == 4... Все, дальше дело не идет. Разумеется, после второго нажатия на кнопку все повторяется заново, и находится еще одна t, которая теперь на второй позиции...
2
4029 / 2319 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
09.10.2013, 21:18 4
neva, без обид, но в общем бред.

Sasha, на втором шаге цикла переменная а равна трем, а строка на этот момент содержит следующее - "Sttt30". Какой символ удалится? Что будет на третьем шаге цикла? Делаем выводы о вреде избыточного инкремента...
1
4945 / 2409 / 530
Регистрация: 05.06.2008
Сообщений: 7,511
Записей в блоге: 3
09.10.2013, 22:30  [ТС] 5
А как правильно сделать чтобы удалить эти буквы до цифр при помощи цикла while?
0
Практикантроп
4578 / 2524 / 465
Регистрация: 23.09.2011
Сообщений: 5,420
09.10.2013, 23:39 6
Если смысл цикла сводится к тому, чтобы удалять со второй позиции строки символ до тех пор, пока там не окажется цифра, то так (с подстраховкой от зависания):__
C++
1
  while (Edit1->Text.Length()>1 && isalpha(Edit1->Text[2])) Edit1->Text = Edit1->Text.Delete(2,1);
1
-2 / 4 / 2
Регистрация: 13.03.2013
Сообщений: 198
10.10.2013, 20:34 7
Цитата Сообщение от BRcr Посмотреть сообщение
neva, без обид, но в общем бред.


Какие обиды. Я только изучаю программирование Но решил высказать свое нелепое мнение
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.10.2013, 20:34

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Удаление символа из строки
Добрый день, суть вопроса такая, приведенном ниже коде, массиву val присваивается другой массив,...

Удаление символа из строки
всем привет как можно удалить символ из строки? посоветовали воспользоваться ф-ей memmove, но я...

Удаление символа из строки
есть сторка символов которая находится по оному адресу мз неё нужно удалить оределённый символ...

Удаление символа строки
Здравствуйте а есть такая функция которая удаляет из строки выбранный символ и соответственно...

Удаление символа с строки
Привет всем!!! Народ, подскажите есть ли ф-ция в С++ для удаления символа с строки или подстроки...

Удаление символа из строки
Задача такова: Даны символы s1,s2,... Известно, что символ s1 отличен от пробела и что среди...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.