Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 06.03.2012
Сообщений: 40
1

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

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

Author24 — интернет-сервис помощи студентам
Написал код для сортировки текста в алфавитном порядке. Делал все вроде правильно, как говорится, по книжке, но при компиляции выдает очень много ошибок, и мне кажется, что это связано с объявлением 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.03.2012, 19:41
Ответы с готовыми решениями:

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

Ошибка при присвоении argv[1] переменной string. Как конвертировать к типу string?
&quot;call of an object of a class type without appropriate operator() or conversion functions to...

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

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

18
Эксперт С++
516 / 421 / 92
Регистрация: 23.09.2010
Сообщений: 1,165
11.03.2012, 19:47 2
Джон, set и string находятся внутри пространства имен std.
Используйте using или пишите std::set, std::string.
0
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
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
Эксперт С++
516 / 421 / 92
Регистрация: 23.09.2010
Сообщений: 1,165
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
Эксперт С++
516 / 421 / 92
Регистрация: 23.09.2010
Сообщений: 1,165
11.03.2012, 20:21 7
Джон, не слушайте. <string> и <set> пишутся без .h. А <ctype.h> на самом деле пишется <cctype>
0
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
11.03.2012, 20:27 8
gooseim, В C++ не string а cstring, в данном коде нет ничего используемого из <string>, как я понял код на C а <string> это файл C++.
0
Эксперт С++
516 / 421 / 92
Регистрация: 23.09.2010
Сообщений: 1,165
11.03.2012, 20:29 9
Toshkarik,
Цитата Сообщение от Toshkarik Посмотреть сообщение
в данном коде нет ничего используемого из <string>
set<string> SetS;
set<string>::iterator iter;
И даже здесь?
0
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
11.03.2012, 20:30 10
gooseim, извиняюсь, проглядел, пора отдыхать
0
Эксперт С++
516 / 421 / 92
Регистрация: 23.09.2010
Сообщений: 1,165
11.03.2012, 20:31 11
Цитата Сообщение от Toshkarik Посмотреть сообщение
В C++ не string а cstring
В c++ есть и то и то. cstring - библиотека сишных функций, а string - собственно класс string.
0
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
11.03.2012, 20:32 12
gooseim, я это и имел ввиду. cstring для работы со строками в стиле C. И тут он нужен, ну или string.h, так как strlen оттуда.
0
52 / 52 / 2
Регистрация: 09.03.2012
Сообщений: 101
11.03.2012, 20:34 13
Цитата Сообщение от Джон Посмотреть сообщение
scanf("%[^a-zA-Z]",s);
Я что-то упустил в изучении языка C++ или с каких пор scanf поддерживает регулярные выражения?
0
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
11.03.2012, 20:36 14
Да мне вообще не понятно, зачем смешить C и C++.
0
Эксперт С++
516 / 421 / 92
Регистрация: 23.09.2010
Сообщений: 1,165
11.03.2012, 20:37 15
Цитата Сообщение от Toshkarik Посмотреть сообщение
И тут он нужен, ну или string.h, так как strlen оттуда
Теоретически да. А по факту зависит от компилятора.
0
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
11.03.2012, 20:43 16
Прототип находится именно там, не думаю что стоит в этом плане рассчитывать на компиляторы.
0
Эксперт С++
516 / 421 / 92
Регистрация: 23.09.2010
Сообщений: 1,165
11.03.2012, 20:46 17
Цитата Сообщение от modwind Посмотреть сообщение
Я что-то упустил в изучении языка C++ или с каких пор scanf поддерживает регулярные выражения
Смотря что понимать под термином "регулярное выражение". Си поддерживает своеобразные регулярные выражения с самого начала создания языка.

Цитата Сообщение от Toshkarik Посмотреть сообщение
Да мне вообще не понятно, зачем смешить C и C++.
Смеху им мало, я думаю. Слез больше)
Все сейчас смешивают си и си++. Надо принять как есть.
0
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
11.03.2012, 20:48 18
Цитата Сообщение от gooseim Посмотреть сообщение
Смеху им мало
Извиняюсь, там очепятка Имел ввиду смешивать
0
Эксперт С++
516 / 421 / 92
Регистрация: 23.09.2010
Сообщений: 1,165
11.03.2012, 20:48 19
Цитата Сообщение от Toshkarik Посмотреть сообщение
Прототип находится именно там, не думаю что стоит в этом плане рассчитывать на компиляторы.
Конечно, нет.
0
11.03.2012, 20:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.03.2012, 20:48
Помогаю со студенческими работами здесь

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

Ошибка в возвращаемом типе
Помогите пожалуйста, у меня уже волосы дыбом встают. Почему компилятор ругается на это......

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

Ошибка при освобождении памяти массива string
Вот тут вот при delete возникает ошибка, и пишет &quot;The program ' Array Template.exe: Native' has...


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru