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

Преобразовать строку: удалить все символы '*' - C++

Восстановить пароль Регистрация
 
maxpayn
0 / 0 / 0
Регистрация: 02.08.2011
Сообщений: 6
24.12.2011, 21:45     Преобразовать строку: удалить все символы '*' #1
не могу придумать как решить задачу, помогите плз

C++
1
Преобразовать строку: удалить все символы '*'. Вывести в алфавитном порядке все согласные латинские буквы, не входящие в строку
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.12.2011, 21:45     Преобразовать строку: удалить все символы '*'
Посмотрите здесь:

C++ Ввести строку и слово, удалить все вхождения слова и вывести строку
C++ Преобразовать строку, удалив из неё все символы, не являющиеся буквами или цифрами
Обработка строк. Преобразовать строку, удалив из нее все символы, не являющиеся буквами или цифрами C++
Преобразовать строку символов, удалив из нее все символы, не являющиеся буквами C++
Преобразовать строку, удалив из нее все символы, не являющиеся буквами или цифрами C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mиxaил
 Аватар для Mиxaил
530 / 435 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
24.12.2011, 22:01     Преобразовать строку: удалить все символы '*' #2
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 <algorithm>
#include <string>
#include <iterator>
#include <set>
int main()
{
    std::string Line( "qwert** erwr8*re wer8* ** *wrwe" ), letters( "QqWwRrTtPpSsDdFfGgHhJjKkLlZzXxCcVvBbNnMm" );
    
    Line.erase( std::remove( Line.begin(), Line.end(), '*' ), Line.end() );
    std::cout << Line << std::endl;
 
    std::set < char > CharSet( letters.begin(), letters.end() );
    for ( size_t index = 0; index < Line.size(); index++ )
        if ( letters.find( Line[ index ] ) != std::string::npos )
            CharSet.erase( Line[ index ] );
 
    std::copy( CharSet.begin(), CharSet.end(), std::ostream_iterator < char >( std::cout, " " ) );
 
    return 0;    
}
maxpayn
0 / 0 / 0
Регистрация: 02.08.2011
Сообщений: 6
24.12.2011, 22:02  [ТС]     Преобразовать строку: удалить все символы '*' #3
спасибо
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
24.12.2011, 22:13     Преобразовать строку: удалить все символы '*' #4
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
34
35
36
#include <iostream>
#include <cstring>
 
#define CH '*'
 
using namespace std;
 
void del ( char *s)
{
   if ( s ) {
      char *t = s + 1;
   
      while ( *s++ = *t++ )
         ;
   }      
}      
 
int main ()
{
   char buf[]= "Hell**o * world*";
   char *p;
   char alpha[] = "wrtplkjhgfdszxcvbnm";
 
   for ( p = strchr (buf, CH) ; p ; p = strchr (buf, CH) )
      del (p);
      
   cout << buf << endl;
   
   for ( p = buf ; *p ; ++p )
      del (strchr (alpha, tolower(*p)));
   
   for ( p = alpha ; *p ; ++p )
      cout << *p;
   
   return 0;
}
Добавлено через 1 минуту
Mиxaил, а что W уже не согласный??? регистр не имеет значения.
Mиxaил
 Аватар для Mиxaил
530 / 435 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
24.12.2011, 22:34     Преобразовать строку: удалить все символы '*' #5
go, ну да, нужно было также опускать регистры. Ну да ладно...
Yandex
Объявления
24.12.2011, 22:34     Преобразовать строку: удалить все символы '*'
Ответ Создать тему
Опции темы

Текущее время: 18:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru