Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.12.2012, 22:57   #1
Женька Good
Форумчанин
 
Регистрация: 15.03.2011
Сообщений: 126
По умолчанию C++ Builder проблема с условием "if"

Подскажите, форумчане, почему не выполняется условие(выделено красным)?
без условия выполняется все
Код:
AnsiString S;
char s1;
int l;
S = CheckListBox1->Items->Strings[0];
l = S.Length();
Edit1->Text=l;
s1=S[1];
if (s1=='a') {
Edit2->Text='a';
}
Женька Good вне форума Ответить с цитированием
Старый 19.12.2012, 23:14   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Очевидно, потому, что S[1] не есть 'a'. Или Вы имели в виду что-то иное?
Abstraction вне форума Ответить с цитированием
Старый 19.12.2012, 23:29   #3
Женька Good
Форумчанин
 
Регистрация: 15.03.2011
Сообщений: 126
По умолчанию

Цитата:
Сообщение от Abstraction Посмотреть сообщение
Очевидно, потому, что S[1] не есть 'a'. Или Вы имели в виду что-то иное?
S - это строка, точнее слово, которое начинается на 'а'
S1 приравниваем S[1] - это первый символ строки
потом должно проверится условие, если первый символ в строке "а", то выполняем условие
Женька Good вне форума Ответить с цитированием
Старый 19.12.2012, 23:57   #4
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
S - это строка, точнее слово, которое начинается на 'а'
Можете проверить это утверждение каким-то иным способом? Потому что напрямую из приведённого кода оно не следует, а его нарушение - пока самая вероятная гипотеза.
Abstraction вне форума Ответить с цитированием
Старый 20.12.2012, 00:31   #5
Женька Good
Форумчанин
 
Регистрация: 15.03.2011
Сообщений: 126
По умолчанию

Цитата:
Сообщение от Abstraction Посмотреть сообщение
Можете проверить это утверждение каким-то иным способом? Потому что напрямую из приведённого кода оно не следует, а его нарушение - пока самая вероятная гипотеза.
Каким другим способом можно проверить?
Женька Good вне форума Ответить с цитированием
Старый 20.12.2012, 01:23   #6
kventin_zhuk
БНТУ ФИТР
Форумчанин
 
Аватар для kventin_zhuk
 
Регистрация: 20.05.2012
Сообщений: 315
По умолчанию

Цитата:
Сообщение от Женька Good Посмотреть сообщение
Каким другим способом можно проверить?
Могу предположить, что ты вводишь текст на русской раскладке, или капс включен) Попробуй на английской, должно работать.
С++(console/builder/WinAPI/Linux), C#, Pascal, Delphi, Asm, Prolog.
< ----- Контакты
kventin_zhuk@live.com
kventin_zhuk вне форума Ответить с цитированием
Старый 20.12.2012, 01:33   #7
ACE Valery
Сама себе режиссер
Старожил
 
Аватар для ACE Valery
 
Регистрация: 27.04.2007
Сообщений: 3,365
По умолчанию

Может, s1 = S[0]?
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
ACE Valery вне форума Ответить с цитированием
Старый 20.12.2012, 08:35   #8
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от ACE Valery Посмотреть сообщение
Может, s1 = S[0]?
В AnsiString отсчёт ведётся именно с 1-ы. Только не понятно, зачем его в char переводить?
Код:
AnsiString S;
//char s1;
int l;
S = CheckListBox1->Items->Strings[0];
l = S.Length();
Edit1->Text=l;
//s1=S[1];
if (S[1] == "a" || S[1] == "а") {
Edit2->Text="a";
}
Эдесь одно "а" в русской раскладке, другое в английской.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 20.12.2012 в 08:40.
Smitt&Wesson вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать класс "Фигура", от него наследованием создать 3 класса ("треугольник", "четырехугольник", "окружность") funnyy Помощь студентам 3 17.10.2012 17:40
Вывести название соответствующей карты вида "шестерка бубен", "дама червей","туз треф" и т.п. воваава Помощь студентам 3 01.12.2011 12:50
дополнить программу условием:"Определить среднее арифметическое значений функций, меньших 1" wowan Паскаль, Turbo Pascal, PascalABC.NET 2 22.06.2011 16:25
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04
Ошибка при использовании OlePropertyGet("Documents").OleProcedure("Add") в C++ Builder AleksP C++ Builder 7 11.04.2009 13:06