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

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

Войти
Регистрация
Восстановить пароль
 
 
Frip
2 / 2 / 1
Регистрация: 04.11.2013
Сообщений: 273
#1

Ошибка при работе с функцией strlen - C++

26.11.2014, 19:34. Просмотров 1482. Ответов 19
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <cstring>
 
using namespace std;
 
int main(){
 string a;
 int i,j;
     cout<<"Vvedite stroky \n";
     cin>>a;
 i = strlen(a);
 cout<<"Dlina stroki: ";    
 cout<<i;
 //system ("pause");
}
Ругается на 11 строку "[Error] cannot convert 'std::string {aka std::basic_string<char>}' to 'const char*' for argument '1' to 'size_t strlen(const char*)' "

Не могу понять, в чём проблема
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.11.2014, 19:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка при работе с функцией strlen (C++):

Исправить ошибки при работе с функцией rand - C++
Он просто выводит максимальное число вместо того чтобы выводить рандомное или я что то не так делаю? Ознакомьтесь с правилами форума. ...

Передача массива символов в функцию strlen после создания его функцией sprintf - C++
Если вводится 1 символ, выводится &quot;8&quot;, 2 символа - &quot;9&quot;. И так далее. Почему? Это нормально? Задание требует преобразование long double в...

Не является внутренней или внешней командой - ошибка не при компиляции а при работе программы - C++
В VS скомпилировал код #include &lt;iostream&gt; using namespace std; int main() { int a; cout&lt;&lt;&quot;Hallo&quot;; cin&gt;&gt;a; cout&lt;&lt;a; ...

Ошибка при вызове функции transform с функцией, в качестве аргумента - C++
Здравствуйте! Хочу перевести строку в нижний\верхний регистр, используя готовые алгоритмы. Пишу так: transform(str1.begin(),...

Ошибка: Function 'strlen' could not be resolved - C++
#include &lt;iostream&gt; #include &lt;string&gt; using namespace std; char * cString=&quot;hello&quot;; int len; int main() { len=strlen(cString); ...

Ошибка при работе со структурой - C++
#include &lt;iostream.h&gt; #include &lt;conio.h&gt; #pragma argsused float v; struct GOODS { unsigned quantity; float price;}; ...

19
hoggy
6797 / 2983 / 514
Регистрация: 15.11.2014
Сообщений: 6,738
Завершенные тесты: 1
26.11.2014, 22:06 #16
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
http://rextester.com/VIZ34038



C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <string>
 
using namespace std;
 
int main(){
 
    string a;
    cout<<"введите строку\n";
    
    ::std::getline(cin, a);
    
    cout<<"вы ввели: "<<a<<'\n';
    
    cout<<"длина строки: "<<a.length()<<'\n';
}
1
tyreu
Заблокирован
26.11.2014, 22:09 #17
забыл про гетлайн
2
Frip
2 / 2 / 1
Регистрация: 04.11.2013
Сообщений: 273
26.11.2014, 22:12  [ТС] #18
Воо спасибо!
Тут у меня вопрос, зачем вы еще раз ввели ::std:: ведь прописано же using namespace std;

Попробовал, и так и так работает

Добавлено через 25 секунд
Простите
0
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
4009 / 2232 / 557
Регистрация: 18.10.2014
Сообщений: 3,853
26.11.2014, 22:16 #19
Цитата Сообщение от Frip Посмотреть сообщение
ведь прописано же using namespace std;
Если у вас уже прописано 'using namespace std;', то 'std' можно не писать. Я приводил свой пример "вне контекста".
0
hoggy
6797 / 2983 / 514
Регистрация: 15.11.2014
Сообщений: 6,738
Завершенные тесты: 1
26.11.2014, 22:38 #20
Цитата Сообщение от Frip Посмотреть сообщение
зачем вы еще раз ввели ::std:: ведь прописано же using namespace std;
Дурная привычка.

Лучше не писать:
C++
1
using namespace std;
И не писать:
C++
1
::std
(не ставьте точки перед std)
0
26.11.2014, 22:38
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.11.2014, 22:38
Привет! Вот еще темы с ответами:

Ошибка при работе с классами - C++
Выдаёт ошибки: 1) expected primary-expression before &quot; #include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;stdlib.h&gt; using...

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

Ошибка при работе с портами - C++
Следующ.кусок кода определяет нажата клавиша Esc или F8. После компиляции при запуске проги и при нажатии F8 вызывается функция printf...

Ошибка при работе с памятью - C++
Если ввести например 6, 0, чтобы выбросить исключение. То по завершение программы выскакивает ошибка. В чём может быть дело? Так что то про...


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

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

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