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

Строки, нужно подправить код - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Неправильный рандом http://www.cyberforum.ru/cpp-beginners/thread897778.html
Здравствуйте. Программа должна заполнять массив случайными, не повторяющимися элементами. Однако не смотря на то что максимальное значение случайных элементов было задано 50, массив заполняется...
C++ Класс Sentence и сортировка строки по алфавиту #include <stdio.h> #include <conio.h> #include <string.h> #include <iostream.h> class Sentence { public: char *str; Sentence(char *p); char* sort(); http://www.cyberforum.ru/cpp-beginners/thread897776.html
C++ Рекурсия. Составьте программу, которая для заданных значений n и m, определит номер оставшегося в кругу человека
Пусть n человек встали в круг и получили номера от 1 до n по часовой стрелке. Затем, начиная с первого, по часовой стрелке отсчитывается m человек. Этот m–й человек выходит из круга, после чего,...
Turbo C++ C++
где можно скачать турбо си?
C++ Как вызвать в main данные функции? http://www.cyberforum.ru/cpp-beginners/thread897729.html
Вот весь код,приму любые замечания,так как я еще учусь) Ткните меня в мои же ошибки) using namespace std; template <class T>//Создаем дерево class Tree { struct Node { T item; Node...
C++ Конвертер линейных уравнений Мне нужно сконвертировать линейное уравнение так, что бы получилось уравнения для процессора Привер: (2+3)*5 -> 2 3 + 5 * Вопрос только в том, как называется данная конвертация? подробнее

Показать сообщение отдельно
MikeEl
1 / 1 / 0
Регистрация: 27.03.2012
Сообщений: 52
11.06.2013, 00:20  [ТС]
Цитата Сообщение от DU Посмотреть сообщение
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
#include <algorithm>
#include <iostream>
#include <iterator>
#include <list>
#include <string>
#include <sstream>
 
using namespace std;
 
typedef istream_iterator<string> ii;
 
int main()
{
  string line = "aaa bbb d222 ccc";
  //cout << "Put line: ";
  //getline(cin, line);
  stringstream str(line);
  
  list<string> w((ii(str)), ii());
  string new_line;
  for (list<string>::iterator p = w.begin(); p != w.end(); ++p)
  {
    if (find_if(p->begin(), p->end(), &isdigit) == p->end())
    {
      new_line += new_line.empty() ? *p : (' ' + *p);
    }
  }
 
  std::cout << "new line = " << new_line << std::endl;
 
  system("pause");
  return 0;
}
на самом деле, я уже вот с этим кодом работаю:
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
37
38
39
40
41
42
43
#include <stdio.h>
#include <string.h>
#include <ctype.h>
 
#define DELIM " ,.?!:;"
 
char* find_digit(char* s, size_t n)
{
    size_t i;
    for(i = 0; i < n; ++i)
        if(isdigit(s[i])) return &s[i];
 
    return NULL;
}
 
int main()
{
    size_t n;
    char str[256];
    char* p_str;
 
    printf("input string: ");
    scanf("%255[^\n]", str);
 
    p_str = str;
 
    while(*p_str)
    {
        if(!strchr(DELIM, *p_str))
        {
            n = 0;
            do ++n; while(!strchr(DELIM, p_str[n]));
 
            if(find_digit(p_str, n)) memmove(p_str, p_str + n, strlen(p_str + n) + 1);
            else  p_str+= n;
        }
        else ++p_str;
    }
 
    printf("%s\n", str);
 
    return 0;
}
но вот не могу понять, для чего #define DELIM " ,.?!:;" и как вообще вся программа работает, не могли бы Вы объяснить, пожалуйста?
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.