| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Visual C++/MFC/WTL > Как разбить строку на символы? |
| Автор: Данкинг 31.1.2007, 20:53 |
| Не сомневаюсь, что подобное неоднократно обсуждалось, но найти не смог. Суть вопроса: есть текстовое поле (EDIT). Требуется взять из него строку и посчитать сумму ASCII-кодов символов в ней. Вопрос с том, как мне разбить строку на символы?? |
| Автор: Sartorius 31.1.2007, 20:55 |
| Чего то я MFC забыл уже ... у CString индексатор разве не перегружен? |
| Автор: Данкинг 31.1.2007, 20:58 |
| В смысле, индексатор? Я С++ 2 недели изучаю, мне подробней желательно! |
| Автор: Sartorius 31.1.2007, 21:03 | ||
Вобщем чего то такое
|
| Автор: Данкинг 31.1.2007, 21:21 | ||
| Вот как я сделал, компилируется нормально, но при работе программа вылетает с "Access violation". m_edit - это переменная, связанная с EDIT.
Э-э-э... Тут я понял, что Int приравниваю CString. А как получить ASCII-код символа?.... |
| Автор: Greeen 1.2.2007, 01:31 | ||||
Товаришч, у тебя тут бесконечный цикл получается.
|
| Автор: Nuzur 1.2.2007, 11:59 | ||
Данкинг, Может лучше сначала еорию полистать?
1. Начнем с того что индексация масива иден с 0-ля, что значит что в твоем варианте пропущен 1-й символ, который 0-й в масиве. 2. Access vioaltion ты получаеш поскольку в for 2-м пунктом идет условие окончание цИкла. А у тебя m_edit.GetLength() возвращяет длинну строки. Проще говоря если в строке хоть что-то есть продолжеть до боли в памяти 3. l=l+m_edit[j]; С паскаля переходиш? ЧитаБЕльней так l += m_edit[j]; 4. От греха подале лучше все-таки переконвертить, незнаю параноя у меня нверно l += int(m_edit[j]); Удачи! |
| Автор: Данкинг 1.2.2007, 12:25 |
| Насчёт индексации с нуля не понял: к примеру, в слова "строка" первая "с" - это нулевой символ получается, а не первый? А в теории я мало чего понимаю, мне проще сразу осваивать на практических примерах, попутно понимая и теорию. |
| Автор: Nuzur 1.2.2007, 14:27 |
| Данкинг, именно. Все индексы начинаются с 0-ля ЗЫ Вел я как-то один проект после такого как ты. К его и моему счастью я не знал ни его имени ни как зовут. Иначе я б сел а он слег. Теория она для того и пишется что б люди понимали что делают. Ладно харе флудить. |
| Автор: Данкинг 1.2.2007, 14:34 |
| Угу, вопрос решён, всем спасибо! |
| Автор: cir 6.2.2007, 09:14 | ||
| k:=0; i:=1; for i:=1 to 5 do begin k:=k+2 end; Добавлено @ 09:15
|