10.06.2013, 20:26. Просмотров 333. Ответов 7
Есть задание :
Из заданной последовательности слов удалить слова, содержащие числа.
и я написал данный код:
Код:
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
44
45
46
47
48
| #include <iostream>
#include <list>
#include <string>
#include <sstream>
#include <iterator>
#include <algorithm>
using namespace std;
typedef std::istream_iterator<std::string> ii;
int main()
{
cout << "Put line: ";
string line, new_line;
getline(cin, line);
stringstream str(line);
list<string> w((ii(str)), ii());
for (list<string>::iterator p = w.begin(); p != w.end(); )
{
if (isdigit((*p)[0]))
{
new_line += *p++;
new_line.push_back(' ');
continue;
}
unsigned i = 1;
bool state = false;
list<string>::iterator tmp = p++;
for ( ; i < tmp->size(); ++i)
{
if (isdigit((*tmp)[i]))
{
w.erase(tmp);
state = true;
break;
}
}
if (!state)
{
new_line += *tmp;
new_line.push_back(' ');
}
}
cout << new_line << endl;
system("pause");
} |
|
все работает. но:
во-первых, преподовательница сказала, что нельзя испольовать String, stringstream str(line)
вместо этого сказала про Char*
и во вторых, использовать фукнции
кто может помочь? времени в обрез ,а самому еще нужно несолько лаб доделать, исправте, пожалуйста