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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 26, средняя оценка - 4.81
Flying_Man
 Аватар для Flying_Man
0 / 0 / 0
Регистрация: 28.01.2011
Сообщений: 28
03.02.2011, 17:46     Почему не работает strlen()??? #1
Код программы:
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()???
Посмотрите здесь:

[C++]Теория.Почему в данном случае copy() не работает после reserve(),но работает после resize()? C++
Не могу понять почему не работает (или правильно не работает) C++
C++ Не понимаю, почему не работает стандартная функция strlen
C++ Не могу разобраться почему не работает программа(Код, написанный на Borland C++ не работает в Dev C++)
C++ Почему в динамическом массиве не работает то, что работает со статическим?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
panicwassano
590 / 558 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
03.02.2011, 17:49     Почему не работает strlen()??? #2
тебе же компилятор пишет ошибку, что функция принимает параметр типа const char* а не string
C++
1
d=strlen(s.c_str());
CheshireCat
Эксперт С++
2907 / 1235 / 78
Регистрация: 27.05.2008
Сообщений: 3,307
03.02.2011, 17:51     Почему не работает strlen()??? #3
C++
1
d=strlen(s.c_str());
А вообще, чем не устраивает s.size() ?
Escapable
53 / 53 / 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
590 / 558 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
03.02.2011, 17:55     Почему не работает strlen()??? #5
а вы что по вашему вводите символьный массив чтоли?)))
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 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
53 / 53 / 1
Регистрация: 09.11.2010
Сообщений: 120
03.02.2011, 18:01     Почему не работает strlen()??? #8
asics, имелось ввиду без типа string ...
panicwassano
590 / 558 / 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
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
03.02.2011, 18:11     Почему не работает strlen()??? #11
Цитата Сообщение от Escapable Посмотреть сообщение
asics, имелось ввиду без типа string ...
Телепатическими способностями не обладаю, так-что четко исхожу из текста.

Добавлено через 1 минуту
Цитата Сообщение от Flying_Man Посмотреть сообщение
доступным мне языком
Здесь, ка бэ, все пишут по-русски, что не понятно ?
panicwassano
590 / 558 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
03.02.2011, 18:12     Почему не работает strlen()??? #12
Flying_Man вам стоит почитать книжку, особенно там где про функции
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
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
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
03.02.2011, 18:28     Почему не работает strlen()??? #15
Flying_Man, нужно не статьи читать, а хорошие учебники, в которых информация подается систематически, чтобы не было так, что "нахватался тут, нахватался там, а в итоге ничего не знаю"
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 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++ Почему выводится в виде таблицы и почему не работает сортировка

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

Или воспользуйтесь поиском по форуму:
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()???
Ответ Создать тему
Опции темы

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