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

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

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

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

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

Подскажите то делает в С++ "strlen"
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.07.2011, 20:56
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Что делает отператор Strlen? (C++):

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

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

Что в программе делает так, что процессор грузится на 100%? - C++
Я не очень разбираюсь в С++, поэтому прошу вашей подсказки по поводу нагрузки на процессор. Вот код программы, на компьютере жрет всю...

Что это за знак >> прочитал что это сдвиг вправо? что он делает - C++
int d=6, c=5,f; f = d >> c; cout<< f; вывод 0

Что это за метод?И что он делает? - C++
double func (double y, int k, int n){ double y1; for (int i=0; i<=n+1;i++) y1=0; double t; t=0; y1=1; ...

Объясните что именно делает "x%d, y%d: " или что это в даном коде - C++
#include <iostream> #include <cmath> using namespace std; double rast(double x1, double y1, double x2, double y2) // Функція яка...

3
diagon
Higher
1930 / 1196 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
03.07.2011, 20:57 #2
Возвращает длину строку без учета '\0'
0
Профан
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 49
03.07.2011, 21:31  [ТС] #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);
}
0
diagon
Higher
1930 / 1196 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
03.07.2011, 21:34 #4
Цитата Сообщение от Профан Посмотреть сообщение
name = new char[strlen(name_w)+1];
strcpy( name, name_w );
Выделяет под name количество памяти, необходимое чтобы туда вместилась вторая строка. Т.е. количество символов + 1(место под '\0')
И в следующей строке копирует name_w в name
0
03.07.2011, 21:34
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.07.2011, 21:34
Привет! Вот еще темы с ответами:

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

Что делает endl - C++
Код типа cout &lt;&lt; &quot;blahblahblah&quot; &lt;&lt; endl зачем там endl, вроде и без него все нормально работает

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

Что делает программа? - C++
не могу понять что делает программа? #include &lt;iostream&gt; using namespace std; bool mystery(unsigned bits); int main() { ...


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

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

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