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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 5.00
Джон
0 / 0 / 0
Регистрация: 06.03.2012
Сообщений: 40
11.03.2012, 19:41     Тривиальная ошибка при типе string #1
Написал код для сортировки текста в алфавитном порядке. Делал все вроде правильно, как говорится, по книжке, но при компиляции выдает очень много ошибок, и мне кажется, что это связано с объявлением 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());
 }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.03.2012, 19:41     Тривиальная ошибка при типе string
Посмотрите здесь:

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

Цитата Сообщение от Toshkarik Посмотреть сообщение
Да мне вообще не понятно, зачем смешить C и C++.
Смеху им мало, я думаю. Слез больше)
Все сейчас смешивают си и си++. Надо принять как есть.
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
11.03.2012, 20:48     Тривиальная ошибка при типе string #18
Цитата Сообщение от gooseim Посмотреть сообщение
Смеху им мало
Извиняюсь, там очепятка Имел ввиду смешивать
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.03.2012, 20:48     Тривиальная ошибка при типе string
Еще ссылки по теме:

C++ Ошибка в типе данных
C++ Ошибка при освобождении памяти массива string
C++ Ошибка в типе данных 'String' and 'System::String'

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

Или воспользуйтесь поиском по форуму:
gooseim
Эксперт C++
500 / 404 / 35
Регистрация: 23.09.2010
Сообщений: 1,139
11.03.2012, 20:48     Тривиальная ошибка при типе string #19
Цитата Сообщение от Toshkarik Посмотреть сообщение
Прототип находится именно там, не думаю что стоит в этом плане рассчитывать на компиляторы.
Конечно, нет.
Yandex
Объявления
11.03.2012, 20:48     Тривиальная ошибка при типе string
Ответ Создать тему
Опции темы

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