Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
AZIZBEK
0 / 0 / 0
Регистрация: 16.06.2012
Сообщений: 37
#1

Вывести на экран все символы строки кроме букв

19.07.2012, 10:01. Просмотров 1221. Ответов 11
Метки нет (Все метки)

дана строка
вывести на экран символы кроме букв
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.07.2012, 10:01
Ответы с готовыми решениями:

Удалить из строки все символы кроме букв и цифр; заменить цифры на '**'
ввести рядок , удалить в нем все символы кроме букв и цифр, заменить цифры на...

Необходимо вывести на экран все различные символы строки
Помогите, пожалуйста! Написать программу, которая читает с клавиатуры строку...

Строки. Вывести на экран все символы, расположенные внутри скобок
Дана строка символов, среди которых есть одна открывающаяся и одна...

Удалить со строки все указание символы кроме первого
Дана строка ("This,code,are,working, "), вопрос в том как удалить все комы...

Из строки удалить все символы, кроме пробелов, не являющиеся буквами английского алфавита
Разработать консольное приложение. 1. Во введенной строке после k-го символа...

11
David Sylva
1293 / 955 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
19.07.2012, 10:20 #2
Вот так можно
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream> 
#include <cctype>
using namespace std; 
int main() 
{
    char str[] = "sfdasfas 123 &&&& 1!!!!! CCCAsfasd";  
    int i; 
    for ( i = 0; i < strlen(str); i++) 
    { 
        if(isalpha(str[i])) 
            continue;
        else 
            cout << str[i]; 
    }
 
}
1
rangerx
1941 / 1550 / 478
Регистрация: 31.05.2009
Сообщений: 2,913
19.07.2012, 12:02 #3
Цитата Сообщение от David Sylva Посмотреть сообщение
for ( i = 0; i < strlen(str); i++)
C++
1
for(i = 0; str[i] != '\0'; i++)
Добавлено через 2 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <algorithm>
#include <iostream>
#include <iterator>
#include <string>
#include <cctype>
 
int main()
{
    using namespace std;
 
    string str;
    cout << "input string: ";
    getline(cin, str);
 
    copy_if(str.begin(), str.end(),
            ostream_iterator<char>(cout, " "),
            [] (char ch) { return !isalpha(ch); });
 
    cout << endl;
}
0
soon
2545 / 1310 / 177
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
19.07.2012, 12:03 #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <string>
#include <cctype>
#include <algorithm>
#include <iterator>
#include <functional>
 
int main()
{
    using namespace std::placeholders;
 
    std::string str("123asd456");
    std::copy_if
    (
        str.begin(),
        str.end(),std::ostream_iterator<char>(std::cout),
        std::bind(std::logical_not<bool>(), std::bind(isalpha, _1))
    );
    std::cout << std::endl;
    return 0;
}
0
modwind
52 / 52 / 2
Регистрация: 09.03.2012
Сообщений: 101
19.07.2012, 12:05 #5
rangerx, тогда лучше
C++
1
2
3
4
5
6
    for (char* s = str; *s; s++) 
    { 
        if(isalpha(*s)) 
            continue;
        putchar(*s);
    }
Добавлено через 1 минуту
soon, из пушки по воробьям.
0
soon
2545 / 1310 / 177
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
19.07.2012, 12:16 #6
Цитата Сообщение от modwind Посмотреть сообщение
C++
1
2
3
if(isalpha(*s)) 
    continue;
putchar(*s);
modwind, тогда уж лучше
C++
1
2
if(!isalpha(*s))
    std::cout << *s;
Цитата Сообщение от modwind Посмотреть сообщение
soon, из пушки по воробьям
А чего ей без дела лежать?
0
rangerx
1941 / 1550 / 478
Регистрация: 31.05.2009
Сообщений: 2,913
19.07.2012, 12:21 #7
modwind, между этими двумя вариантами нет разницы, по сути это одно и тоже.
0
modwind
52 / 52 / 2
Регистрация: 09.03.2012
Сообщений: 101
19.07.2012, 12:26 #8
modwind, тогда уж лучше
Дело вкуса. Мой код идеологически подчёркивает, что некоторые символы пропускаются, а твой - что некоторые выводятся.
А чего ей без дела лежать?
А долго такую программу писать и искать в ней ошибки. И человек, создавший тему начинающий. Как ему понять bind-ы?

Добавлено через 2 минуты
rangerx, по сути да. Просто переменная i как индекс выглядит искусственно, если она реально не используется. Сам указатель на строку можно использовать как итератор.
0
soon
2545 / 1310 / 177
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
19.07.2012, 12:31 #9
Цитата Сообщение от modwind Посмотреть сообщение
А долго такую программу писать и искать в ней ошибки.
Нет
Цитата Сообщение от modwind Посмотреть сообщение
Как ему понять bind-ы?
Я сомневаюсь, что он будет вникать хотя бы в один из предложенных кодов.
0
modwind
52 / 52 / 2
Регистрация: 09.03.2012
Сообщений: 101
19.07.2012, 12:41 #10
C++
1
Я сомневаюсь, что он будет вникать хотя бы в один из предложенных кодов.
Тогда для кого ты написал свой вариант решения задачи? Просто чтобы показать собственную крутость, с использованием всех возможных наворотов языка C++?

Пусть не автор вникнет, так кто-нибудь другой... если здесь не удаляют старые сообщения форума.
0
soon
2545 / 1310 / 177
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
19.07.2012, 12:57 #11
Цитата Сообщение от modwind Посмотреть сообщение
Тогда для кого ты написал свой вариант решения задачи?
Для себя. Если в моем коде есть неточность, то, возможно, мне на нее укажут.
0
easybudda
Модератор
Эксперт CЭксперт С++
10054 / 5974 / 1493
Регистрация: 25.07.2009
Сообщений: 11,320
19.07.2012, 15:47 #12
Очередной хеловорлд-конкурс
В одну строчку вся возня:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <cctype>
 
const int STR_SIZE(256);
 
int main(){
    char str[STR_SIZE];
    
    using namespace std;
    while ( cout << "\nString: " && cin.getline(str, STR_SIZE) && *str )
        for ( char * p = str; *p && ( isalpha(*p) || cout << *p ); ++p )
            ;
    
    return 0;
}
1
19.07.2012, 15:47
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.07.2012, 15:47

Вывести на экран в первой строке нечетные символы, во второй четные символы исходной строки
Помогите написать 3 программы. (на С или С++) 1. Вывести на экран в первой...

Дан массив целых чисел с 0 ,вывести на экран все числа кроме 0
Дан массив целых чисел с 0 ,вывести на экран все числа кроме 0

Удалить все теги , кроме тега <a .>.</a> со страницы html. Результат вывести на экран
Здравствуйте , мне нужно выполнить следующее задание : Дан текст...


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

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

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