Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

строки. что-то тут не так - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Оператор " :: " (Двойное двоеточие) http://www.cyberforum.ru/cpp-beginners/thread312587.html
Доброй ночи! Расскажите пожалуйста что нибудь про этот оператор, и чем он отличается от других операторов подобного предназначения, то есть, в чем его особенность. Заранее благодарен.=)
C++ Реестр, кнопка и c++ Народ помгите пожалуйста! Мучаюсь уже несколько дней. Надо сделать чтобы обычной кнопкой на форме менялось значение ключа реестра. Заранее благодарен. P.S Пользуюсь Microsoft Visual Studio 2010 http://www.cyberforum.ru/cpp-beginners/thread312582.html
Все случаи использования конструктора копирования C++
приведите пример демонстрирующий необходимость и все случаи использование конструктора копирования. нужна помощь)))) #include <iostream> using namespace std; #include <stdlib.h> class cls {...
Класс для обработки комплексных чисел C++
Дана задача написать класс для обработки комплексных чисел(вывод на экран, модуль числа, действия: "+,-,*,/". Готовые коды находил, но почти все не подходят по критериям лабораторной работы. Начал...
C++ Реализация метода Add http://www.cyberforum.ru/cpp-beginners/thread312565.html
Доброго времени суток, У меня такой вопрос: не могли бы вы написать пример реализации метода add в классе...заранее спасибо...
C++ Динамические структуры данных Дали лабу,не знаю как делать,помогите кто может... Написать программу обработки файла типа запись, содержащую следующие пункты меню: - Создание, - Просмотр, - Коррекция – добавление новых... подробнее

Показать сообщение отдельно
OcbMuHor
Заблокирован

строки. что-то тут не так - C++

04.06.2011, 00:35. Просмотров 1143. Ответов 18
Метки (Все метки)

вот код
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
29
30
31
32
33
//Программа удаления из строки символов '0..9'
 
 
#include<iostream> // заголовыочный файл с описаниями функций ввод\вывод
#include<conio.h>  // заголовочный файл для создания текстового интерфейса в режиме MS-DOS
#include <string>  // заголовочный файл для класса string
 
int main()
{
    unsigned short i, k;  // объявление перемнных; беззнаковые целые числа.
    std::string str;      // объявление переменной для хранения строки
    std::cout << "VVEDITE STROKU" << std::endl;  // вывод на экран запроса строки
    std::getline(std::cin, str, '\n');           // ввод строки с клавиатуры
    std::cout << "UDALENIE IZ STROKI SIMVOLOV 0..9" << std::endl;  // без комментариев
    for (i = 0; i < str.size(); i++)  // цикл проверки символов на наличие 0..9
    {
        k = i;
        if (str[k] == 0x30) {str.erase(str.begin() + k); i = i--;} // проверка символов строки на соответствие
        if (str[k] == 0x31) {str.erase(str.begin() + k); i = i--;} // их шестнадцатиричным кодам в таблице ACSII
        if (str[k] == 0x32) {str.erase(str.begin() + k); i = i--;} // и удаление  
        if (str[k] == 0x33) {str.erase(str.begin() + k); i = i--;} // Операция декремента переменной "i" связана 
        if (str[k] == 0x34) {str.erase(str.begin() + k); i = i--;} // со сдвигом символов "влево" на место удаленного
        if (str[k] == 0x35) {str.erase(str.begin() + k); i = i--;} //
        if (str[k] == 0x36) {str.erase(str.begin() + k); i = i--;} //
        if (str[k] == 0x37) {str.erase(str.begin() + k); i = i--;} //
        if (str[k] == 0x38) {str.erase(str.begin() + k); i = i--;} //
        if (str[k] == 0x39) {str.erase(str.begin() + k); i = i--;} //
    }
    k = 0; i = 0;                                                  // обнуление памяти, отведенной переменным   
    std::cout << str <<std::endl;                                  // вывод на экран строки после удаления символов 0..9
    getch();                                                       // ожидание ввода с клавиатуры пользователем
    return 0;
}
Вопрос первый:
Компилятор возмущается тем что неправильно объявлена функция getch(), всё работает, но лучше бы уточнить как правильно.
Вопрос есть второй:
Программа работает, но при наборе символов кириллицей раз через раз влетает сбой и сообщение - индекс строки вне диапазона (string subscript out of range). Это при наборе абракадабры типа "ролукпг90384е3щ4е8г9рагк93за4р3489"
Интересует критика по эстетике и грамматике.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru