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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 5.00
Джон
0 / 0 / 0
Регистрация: 06.03.2012
Сообщений: 40
#1

Тривиальная ошибка при типе string - C++

11.03.2012, 19:41. Просмотров 1067. Ответов 18
Метки нет (Все метки)

Написал код для сортировки текста в алфавитном порядке. Делал все вроде правильно, как говорится, по книжке, но при компиляции выдает очень много ошибок, и мне кажется, что это связано с объявлением set<string>. Помогите исправить ошибку, пожалуйста
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
#include<stdio.h>
#include<set>
#include <ctype.h>
#include <string>
 
 
 set<string> SetS;
 set<string>::iterator iter;
char s[201];
 
 int main()
 {
scanf("%[^a-zA-Z]",s);
 
 
while(scanf("%[a-zA-Z]",s) == 1)
{
  for(int i = 0; i < strlen(s); i++) s[i] = tolower(s[i]);
  SetS.insert(s);
  scanf("%[^a-zA-Z]",s);
}
 
for(iter = SetS.begin(); iter != SetS.end(); iter++)
  printf("%s\n",(*iter).c_str());
 }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.03.2012, 19:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Тривиальная ошибка при типе string (C++):

Ошибка в типе данных 'String' and 'System::String' - C++
Всем привет. помогите, выдает ошибку File1.cpp(40): E2015 Ambiguity between 'String' and 'System::String' ...

Ошибка в типе переменной - C++
Здравствуйте, у меня проблема. Дали задачу, решаю не сразу все, а по кусочкам... первый кусок самый простой, возвести число в нужную...

Ошибка в типе данных - C++
недавно начала учиться программировать в си++, не могу понять в чем ошибка: нужно написать программу,которая бы считала среднее...

Ошибка в типе переменных - C++
Подскажите пожалуйста в чем ошибка. Есть задача:&quot;Задать массив структур «ведомость» (сдачи экзамена). Распределить память для элементов...

Ошибка в возвращаемом типе - C++
Помогите пожалуйста, у меня уже волосы дыбом встают. Почему компилятор ругается на это... template&lt;typename _My&gt; iterator...

Ошибка компилятора при выводе string - C++
Stock::Stock(const char * co, int n, double pr) { cout&lt;&lt;&quot;Вызван конструктор для: &quot;&lt;&lt; co &lt;&lt; &quot;!\n&quot;; company = co; if(n &lt; 0) { ...

18
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
11.03.2012, 19:47 #2
Джон, set и string находятся внутри пространства имен std.
Используйте using или пишите std::set, std::string.
0
Toshkarik
1143 / 860 / 51
Регистрация: 03.08.2011
Сообщений: 2,390
Завершенные тесты: 1
11.03.2012, 20:03 #3
string.h а не string... string это заголовочный файл C++ класса string. Да и set оттуда же.
0
Джон
0 / 0 / 0
Регистрация: 06.03.2012
Сообщений: 40
11.03.2012, 20:05  [ТС] #4
спасибо, помогло.
0
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
11.03.2012, 20:07 #5
Джон, liveworkspace.org небось?
0
Джон
0 / 0 / 0
Регистрация: 06.03.2012
Сообщений: 40
11.03.2012, 20:17  [ТС] #6
Цитата Сообщение от Toshkarik Посмотреть сообщение
string.h а не string... string это заголовочный файл C++ класса string. Да и set оттуда же.
ага, только если я напишу без h, тогда работает, а если так, как Вы говорите, тогда нет
0
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
11.03.2012, 20:21 #7
Джон, не слушайте. <string> и <set> пишутся без .h. А <ctype.h> на самом деле пишется <cctype>
0
Toshkarik
1143 / 860 / 51
Регистрация: 03.08.2011
Сообщений: 2,390
Завершенные тесты: 1
11.03.2012, 20:27 #8
gooseim, В C++ не string а cstring, в данном коде нет ничего используемого из <string>, как я понял код на C а <string> это файл C++.
0
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
11.03.2012, 20:29 #9
Toshkarik,
Цитата Сообщение от Toshkarik Посмотреть сообщение
в данном коде нет ничего используемого из <string>
set<string> SetS;
set<string>::iterator iter;
И даже здесь?
0
Toshkarik
1143 / 860 / 51
Регистрация: 03.08.2011
Сообщений: 2,390
Завершенные тесты: 1
11.03.2012, 20:30 #10
gooseim, извиняюсь, проглядел, пора отдыхать
0
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
11.03.2012, 20:31 #11
Цитата Сообщение от Toshkarik Посмотреть сообщение
В C++ не string а cstring
В c++ есть и то и то. cstring - библиотека сишных функций, а string - собственно класс string.
0
Toshkarik
1143 / 860 / 51
Регистрация: 03.08.2011
Сообщений: 2,390
Завершенные тесты: 1
11.03.2012, 20:32 #12
gooseim, я это и имел ввиду. cstring для работы со строками в стиле C. И тут он нужен, ну или string.h, так как strlen оттуда.
0
modwind
52 / 52 / 1
Регистрация: 09.03.2012
Сообщений: 101
11.03.2012, 20:34 #13
Цитата Сообщение от Джон Посмотреть сообщение
scanf("%[^a-zA-Z]",s);
Я что-то упустил в изучении языка C++ или с каких пор scanf поддерживает регулярные выражения?
0
Toshkarik
1143 / 860 / 51
Регистрация: 03.08.2011
Сообщений: 2,390
Завершенные тесты: 1
11.03.2012, 20:36 #14
Да мне вообще не понятно, зачем смешить C и C++.
0
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
11.03.2012, 20:37 #15
Цитата Сообщение от Toshkarik Посмотреть сообщение
И тут он нужен, ну или string.h, так как strlen оттуда
Теоретически да. А по факту зависит от компилятора.
0
11.03.2012, 20:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.03.2012, 20:37
Привет! Вот еще темы с ответами:

Ошибка при освобождении памяти массива string - C++
Вот тут вот при delete возникает ошибка, и пишет &quot;The program ' Array Template.exe: Native' has exited with code 3 (0x3).&quot; template...

При разыменовании содержимого контейнера vector<string*> возникает ошибка - C++
Добрый день и с Новым Годом, господа! Обращаюсь к вам со странной проблемой - вылетает при попытке взять значение по адресу. имеются...

Ошибка при посимвольной записи из строки char в строку string - C++
Это фрагмент конструктора класса: ifstream fin(&quot;client.txt&quot;); const int n = 80; char buf; fin.getline(buf,...

<method name> is not a member of <class> при любом типе возвращаемого значения, кроме int - C++
Проблема в следующем, есть класс описанный в .h файле, методы класса описаны в .cpp, при компиляции ошибка: BMPImage.cpp(3): E2316...


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

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

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