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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 26, средняя оценка - 4.81
Flying_Man
 Аватар для Flying_Man
0 / 0 / 0
Регистрация: 28.01.2011
Сообщений: 28
#1

Почему не работает strlen()??? - C++

03.02.2011, 17:46. Просмотров 3311. Ответов 16
Метки нет (Все метки)

Код программы:
C++
1
2
3
4
5
6
7
8
9
10
11
#include<string>
#include<iostream>
using namespace std;
 
int main(){
    string s;
    getline(cin, s, '\n');
    int d=0;
    d=strlen(s);
    cout<<d<<'\n';
    return 0;}
Ответ компилятора:
901.cpp: In function `int main()':
901.cpp:9: error: cannot convert `std::string' to `const char*' for argument `1
' to `size_t strlen(const char*)'
g++: 901.o: No such file or directory
g++: no input files

(((---Compile ERROR!!!---)))
Для продолжения нажмите любую клавишу . . .

Не по теме:

Ну почему у меня все не работает???

Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.02.2011, 17:46     Почему не работает strlen()???
Посмотрите здесь:

Теория. Почему в данном случае copy() не работает после reserve(), но работает после resize()? C++
Не могу понять почему не работает (или правильно не работает) C++
C++ Работает в Borland Developer Studio 2006 но не работает в Visual Studio 2008, почему?
strlen C++
C++ Не понимаю, почему не работает стандартная функция strlen
C++ Почему в динамическом массиве не работает то, что работает со статическим?
C++ strlen()+1
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
03.02.2011, 17:49     Почему не работает strlen()??? #2
тебе же компилятор пишет ошибку, что функция принимает параметр типа const char* а не string
C++
1
d=strlen(s.c_str());
CheshireCat
Эксперт С++
2910 / 1238 / 78
Регистрация: 27.05.2008
Сообщений: 3,321
03.02.2011, 17:51     Почему не работает strlen()??? #3
C++
1
d=strlen(s.c_str());
А вообще, чем не устраивает s.size() ?
Escapable
54 / 54 / 1
Регистрация: 09.11.2010
Сообщений: 120
03.02.2011, 17:54     Почему не работает strlen()??? #4
Без строк.
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include<iostream>
using namespace std;
 
int main(){
        char s[256];
        int d;
        cin.getline(s, 256);
 
        d = strlen(s);
        cout<< d << '\n';
        return 0;
}
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
03.02.2011, 17:55     Почему не работает strlen()??? #5
а вы что по вашему вводите символьный массив чтоли?)))
asics
Freelance
Эксперт C++
 Аватар для asics
2842 / 1779 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
03.02.2011, 17:56     Почему не работает strlen()??? #6
Цитата Сообщение от Escapable Посмотреть сообщение
Без строк.
А это тогда что такое ?

Цитата Сообщение от Escapable Посмотреть сообщение
C++
1
char s[256];
Flying_Man
03.02.2011, 17:59  [ТС]
  #7

Не по теме:

panicwassano

...
тебе же компилятор пишет ошибку, что функция принимает параметр типа const char* а не string
Если ты вдруг не заметил, то я тебя просвещу: Ты находишся в разделе "С/С++ для начинающих" , по этому я из твоей фразы (без дополнения) не получил НИЧЕГО полезного. А вообще спасибо!

Escapable
54 / 54 / 1
Регистрация: 09.11.2010
Сообщений: 120
03.02.2011, 18:01     Почему не работает strlen()??? #8
asics, имелось ввиду без типа string ...
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
03.02.2011, 18:05     Почему не работает strlen()??? #9
Flying_Man я лишь перевел то, что пишет тебе компилятор, а дальше делай выводы, если самому интересно разобраться
Flying_Man
 Аватар для Flying_Man
0 / 0 / 0
Регистрация: 28.01.2011
Сообщений: 28
03.02.2011, 18:08  [ТС]     Почему не работает strlen()??? #10
panicwassano, Я просто хочу научится но ничего не получается и хотел чтоб мне всего лишь доступным мне языком объяснили что к чему...
asics
Freelance
Эксперт C++
 Аватар для asics
2842 / 1779 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
03.02.2011, 18:11     Почему не работает strlen()??? #11
Цитата Сообщение от Escapable Посмотреть сообщение
asics, имелось ввиду без типа string ...
Телепатическими способностями не обладаю, так-что четко исхожу из текста.

Добавлено через 1 минуту
Цитата Сообщение от Flying_Man Посмотреть сообщение
доступным мне языком
Здесь, ка бэ, все пишут по-русски, что не понятно ?
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
03.02.2011, 18:12     Почему не работает strlen()??? #12
Flying_Man вам стоит почитать книжку, особенно там где про функции
Nameless One
Эксперт С++
 Аватар для Nameless One
5760 / 3409 / 255
Регистрация: 08.02.2010
Сообщений: 7,406
03.02.2011, 18:23     Почему не работает strlen()??? #13
Господа, прекратите ругаться!
Flying_Man
 Аватар для Flying_Man
0 / 0 / 0
Регистрация: 28.01.2011
Сообщений: 28
03.02.2011, 18:24  [ТС]     Почему не работает strlen()??? #14
asics, все дело в том, что я - самоучка, а норм статью про строчные массивы найти не могу.
И по тому что ни разу не читал/слушал о строках, понял с большим трудом то что вы все пытались до меня донести...

panicwassano Не могли бы вы подсказать хорошую статью в интернете???
Nameless One
Эксперт С++
 Аватар для Nameless One
5760 / 3409 / 255
Регистрация: 08.02.2010
Сообщений: 7,406
03.02.2011, 18:28     Почему не работает strlen()??? #15
Flying_Man, нужно не статьи читать, а хорошие учебники, в которых информация подается систематически, чтобы не было так, что "нахватался тут, нахватался там, а в итоге ничего не знаю"
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
03.02.2011, 19:07     Почему не работает strlen()??? #16
Flying_Man, Товарищ, верь взойдет она...
Ну да, о чем это я... Так вот. Лучше почитать про string. И не стоит юзать С-функции к string. Кроме определенных случаев.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.02.2011, 21:28     Почему не работает strlen()???
Еще ссылки по теме:

Почему программа не работает на MFC статичной библиотеки. а вот на стандартном мфс работает C++
C++ Не работает функция strlen
C++ Почему выводится в виде таблицы и почему не работает сортировка
Почему не работает cin.clear() и как работает sync()? C++
Не работает strlen C++

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

Или воспользуйтесь поиском по форуму:
Flying_Man
 Аватар для Flying_Man
0 / 0 / 0
Регистрация: 28.01.2011
Сообщений: 28
03.02.2011, 21:28  [ТС]     Почему не работает strlen()??? #17
Ок! Всем спасибо...
Yandex
Объявления
03.02.2011, 21:28     Почему не работает strlen()???
Ответ Создать тему
Опции темы

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