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

Удалить из строки все символы не являющиеся буквами латинского алфавита - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Проверка промежутков http://www.cyberforum.ru/cpp-beginners/thread1067747.html
Добрый вечер. Помогите с реализацией вот такой вещи. Я ввожу первое число. Это будет первое расстояние в промежутках. Допустим, ввел 4, значит промежутки будут 0, 4, 8, 12 и т.д., подобно таблице умножения. То же самое со вторым числом. А главная соль заключается в том, чтобы найти совпадения. Например, я ввожу 3 и 5, а совпадение находится в точке 15. Как это сделать? Помогите,...
C++ Задача C++ Собственно помогите пожалуйста решить следующую задачу: http://www.cyberforum.ru/cpp-beginners/thread1067730.html
Количество различных цифр в числе рекурсия C++
для натурального n вывести количество разных цифр, участвовавших в его записи. Помогите составить рекурсивную функцию, я плохо понимаю, а зачет завтра. #include <iostream> using namespace std;
Не учитывать знаковый бит C++
можно ли сделать чтобы вот это условие выполнилось? int a = -5; if((a|0x0FFFFFFFFFFFFFFF)==5) ну то что сейчас в условии глупость наверное, но если можно как то исправить подскажите как пожалуйста
C++ Конструкция с if else, но чтобы в условии были не числа, а слова http://www.cyberforum.ru/cpp-beginners/thread1067715.html
Доброе время суток! Сразу прошу прощения за "неправильную речь", написал как мог! А как мне написать, если я не хочу сравнивать числа, а хочу сравнивать слова или предложения? Например: #include <iostream> using namespace std; int main() { setlocale(0, "");
C++ Программирование по юникс Добрый вечер всем ;) Почти для каждой работы требуется "знакомство/программирование под юникс" . Гуглить я гуглил но до полной осмысленности я так и не дошел. Зачем это надо? Как начать программировать, что почитать? Надеюсь вы добавите еще немного полезной информации об этом ;) Спасибо )) подробнее

Показать сообщение отдельно
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
11.01.2014, 12:40     Удалить из строки все символы не являющиеся буквами латинского алфавита
newb_programmer, работа над ошибками:
1. Подключение стандартного заголовка должно быть с треугольными скобками, а не с кавычками.
2. Для std::isalpha нужно подключение хидера <cctype>, для std::strlen - <cstring>, для std::system - <cstdlib>. То, что работает из без них в конкретном случае, вовсе не значит, что будет работать на другом компиляторе.
3. Использование strlen() в цикле не эффективно. strlen() определяет длину строки путем поиска завершающего нуля, т.е. каждый раз проходит всю строку от начала до конца. Разумнее либо вычислить размер ДО цикла и использовать сравнение с константой, в которой этот размер сохранен, либо, еще лучше, использовать указатель на элемент строки, и проверять, что он не указывает на завершающий ноль ('\0').
4. По заданию ТС требуется не просто вывести на экран символы латиницы, а именно удалить ненужные из исходной строки, т.е. модифицировать сам массив s.
5. using namespace std; Об этом уже много раз говорилось на форуме, что использовать такое не стоит.
6. Значение, задающее длину строки лучше использовать в виде именованной константы.
7. Если третий аргумент для std::istream::getline() не задан, то по умолчанию как раз используется '\n'.

Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <cctype>
#include <cstdlib>
 
int main()
{
    const int kMaxLength = 256;
    char s[kMaxLength];
 
    std::cout<<"Enter line:";
    std::cin.getline(s,kMaxLength);
 
    char* c = s;
    for( char* p = s; *p; p++ )
    {
        if( std::isalpha(*p) )
        {
            *c = *p;
            c++;
        }
    } 
    *c = '\0';
 
    std::cout << s << std::endl;
    std::system("pause");
 
    return 0;
}
http://ideone.com/215MvZ
 
Текущее время: 09:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru