2014-11-01 1 views
-2

У меня есть два вопроса. Мне нужно написать программу, которая извлекает все неалфавитные символы и отображает их, а затем удаляет их.C++ Как извлечь пробел между словами, если есть один

Я использую IsAlpha, который работает для символов, но только если входная строка не имеет места, как «привет мир»

, но если это больше, чем одно слово, как «привет! Мир!», То это будет только извлеките первый восклицательный знак, но не второй.

Второй вопрос, который может быть связан, я хочу, чтобы моя программа для обнаружения пробелов между словами (я пытался isspace, но я должен был использовать это неправильно? И удалить их и поместить их в полукоксе переменной

так и для ! пример если вход hello4 мир How3 вы сегодня я хочу, чтобы это сказать мне

удалены: 4 удалены: удалены: удалены: удалены: 3 удалены: удалены: удалено:

длинный рассказ короткий, если нет другого способа, я хотел бы обнаружить пробелы как isalpha или найти что-то похожее на isalpha для пробела между текстом.

Благодаря

# include <iostream> 
# include <string> 

using namespace std; 

void main() 
{ 
    string message; 


    cin >> message; 

    for (int i = 0; message[i]; i++) 

    if(!isalpha(message[i])) 


     cout << "deleted following character: " << message[i] <<endl; 
     else 
     cout <<"All is good! \n"; 


    } 
+2

Получить растрескивание с написанием кода для вашего домашнего задания (я заметил, что вы не были членом долго и не понимают, что мы не пишем код бесплатно) –

+0

I не хочу, чтобы кто-то писал мой код бесплатно :) Я хочу сказать мне, почему isalpha не обнаруживает символы во втором или третьем слове, только в первом. Я действительно новый член, а также очень новичок в программировании и самообучении atm. Я тренируюсь, решая проблемы, которые я нашел в Интернете, и я застрял на этом atm :) Спасибо. PS. Я только написал то, что хочу, как результат, чтобы объяснить, что я хочу, чтобы он сказал мне, когда он удалил и пространство. не заставлять вас писать :) – Paralytic

+0

Почему бы вам не поставить код здесь - причина, по которой он не работает, как и ожидалось, может быть множеством причин. –

ответ

0

>> читает одно слово, останавливая, когда символ пробела найден. Чтобы прочитать всю строку, вы хотите

std::getline(cout, message); 
0

Существует лучший способ, с помощью которого вы можете получить не-буквенные символы,

Вы можете проверить с Асками значением каждого символа и сравнить с алфавитными асками характером, если не в этом & не пробел (пробел asci val), , тогда вы получите свой неалфавитный символ. Вы можете получить все коды ASCII здесь: =>http://www.asciitable.com/

-Jayesh

+0

Спасибо! Я вообще об этом не думал. – Paralytic

+0

Добро пожаловать :-) –

+0

Мне все еще интересно, почему метод 'isalpha()' не работает? Заканчивается ли for-loop на пробелы? – Sanchises

Смежные вопросы