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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 29, средняя оценка - 5.00
Профан
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 49
#1

Что делает отператор Strlen? - C++

03.07.2011, 20:56. Просмотров 4384. Ответов 3
Метки нет (Все метки)

Подскажите то делает в С++ "strlen"
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.07.2011, 20:56     Что делает отператор Strlen?
Посмотрите здесь:

Что делает функция strlen() ? - C++
Функция strlen()…что она делает...?

Что выполняет функция strlen()? - C++
Как она работает в этой программе? Для чего она нужна здесь? #include "stdafx.h" #include <iostream> #include <conio.h> ...

Что делает строка? - C++
Что делает 14 строка? P.S. Программа читает пары с файла и выводит их на экран. # include <iostream> # include <string> # include...

Что делает оператор >> в C++? - C++
кто-нибудь может объяснить что конкретно делает оператор >> в C++. есть один пример. Там используется api-функция GetLogicalDrives. ...

Что делает fseek? - C++
Что делает fseek и зачем он нужен? fseek(firstFile,0,SEEK_SET); fseek(secondFile,0,SEEK_SET);

_splitpath что делает? - C++
Что такое, с чем его едят, когда применяется и о параметрах.

Что делает код? - C++
цитата из переведённой книги Александреску по языку D: "Если кто-то из ваших коллег прокачал самоуверенность до уровня Супермена, ...

что делает функция? - C++
int slength ( char*str){ int Len = -1; while (++len, *str++); return len; } возвращает длину строки? Добавлено через 42...

Что делает printf? - C++
Народ! Я уже прочитал много страниц и так ни черта не понял про printf. Прошу, объясните мне что он делает, и что печатает (судя по моим...

Что делает cin.get - C++
Вот код: #include <iostream> int main() { int a; std::cin >> a; std::cin.putback ('A'); ...

Что делает операция new? - C++
spis *newl; newl=new spis(temp); что делает операция new spis(temp); П.с spis *temp spis::spis(spis*&temp)

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


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
diagon
Higher
1928 / 1194 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
03.07.2011, 20:57     Что делает отператор Strlen? #2
Возвращает длину строку без учета '\0'
Профан
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 49
03.07.2011, 21:31  [ТС]     Что делает отператор Strlen? #3
Немного не понял смотри вот кусок программы

C++
1
2
3
4
5
6
7
8
Mason::Mason( const char *name_w, double B )
{
name = new char[strlen(name_w)+1];
strcpy( name, name_w );
b = B;
h = 0;
N = 0;
}
от этой :
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#include <iostream>
#include <cstring>
#include <cmath>
 
using namespace std;
 
class Mason {
private:
char *name;
double b;
int N;
double h;
 
public:
const static int N0 = 200;
Mason(const char *name_w, double B);
Mason(const Mason &obj);
~Mason();
double build(int t);
const char* GetName() const { return name; }
int min(int N) { if(N>=N0) return N0; else return N; }
void PrintName() { cout << name << ": "; }
};
 
Mason::Mason( const char *name_w, double B )
{
name = new char[strlen(name_w)+1];
strcpy( name, name_w );
b = B;
h = 0;
N = 0;
}
 
Mason::~Mason()
{
delete[] name;
name = 0;
}
 
Mason::Mason( const Mason &obj )
{
name = new char[strlen(obj.name)+1];
b = obj.b;
h = obj.h;
strcpy(name, obj.name);
}
 
double Mason::build( int t = 130 )
{
 
int min_N = min(t);
h = 10 * sqrt( min_N * (1 - b));
//cout << "b = " << b << ' ' << "N0 = " << N0 <<' ';
return h;
}
 
int main(int argc, char *argv[])
{
Mason ob1( "Vladimir", 0.9 );
ob1.PrintName();
cout << ob1.build(130) << "\n\n";
 
Mason ob2( "Misha", 0.9 );
ob2.PrintName();
cout << ob2.build(230) << "\n\n";
 
Mason ob3( "Aleksey", 0.9 );
ob3.PrintName();
cout << ob3.build(200) << "\n\n";
 
Mason ob4( "Andrei", 0.8 );
ob2 = ob4;
ob4.PrintName();
cout << ob4.build(199) << "\n\n\n";
 
//ob2 = ob4;
ob2.PrintName();
cout << ob2.build(300) << endl;
 
return 0;
}
И как работает strlen

а также подскажите что выполняет этот кусочек:
C++
1
2
3
4
5
6
7
Mason::Mason( const Mason &obj )
{
name = new char[strlen(obj.name)+1];
b = obj.b;
h = obj.h;
strcpy(name, obj.name);
}
diagon
Higher
1928 / 1194 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
03.07.2011, 21:34     Что делает отператор Strlen? #4
Цитата Сообщение от Профан Посмотреть сообщение
name = new char[strlen(name_w)+1];
strcpy( name, name_w );
Выделяет под name количество памяти, необходимое чтобы туда вместилась вторая строка. Т.е. количество символов + 1(место под '\0')
И в следующей строке копирует name_w в name
Yandex
Объявления
03.07.2011, 21:34     Что делает отператор Strlen?
Ответ Создать тему
Опции темы

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