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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ошибка компиляции, класс, файлы. http://www.cyberforum.ru/cpp-beginners/thread329224.html
Здравствуйте участники форума, недавно занялся программированием по книге Дирка Хенкеманса "Программирование игр на С++" Компиляция при распределении классов по файлам, возвращает ошибки. Долгие поиски вынудили обратиться к мастерам за помощью :) Файл: main.cpp #include <iostream> #include <cstring> #include "bow.h" using namespace std;
C++ Строки Заменить все гласные в тексте на звездочку. И подсчитать количество таких букв. Нигде не могу найти, везде есть коды на Паскале, а на С нет. http://www.cyberforum.ru/cpp-beginners/thread329223.html
C++ Операторы cin и scanf
Пример кода: void func(float* p){ cout << "Введите значение"; scanf("%f\n", &p); } Как можно прочитать ссылку через cin ? При записи cin >> &p; - ошибка C2678
C++ и ASM C++
Всем привет. Необходимо посчитать уравнение на языке ASM и вывести ответ на языке С++. Вот готовая программа на ASM с выводом на экран значения. data segment a dw 2 b dw 6 _c dw 12 d dw 3 e dw 5
C++ как добавить рисунок в программу? http://www.cyberforum.ru/cpp-beginners/thread329175.html
знаю, что добавляется через меню project -> add resource->bitmap, но эта функция "add resource" неактивная, подскажите как сделать ее активной?
C++ упростить код есть решена задача, надо упростить, из того перебора в инструкции switch() на enum ( перечисленный тип, мб через рандом но чет не выходит ). // xz.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <iostream> using std::cout; using std::cin; using std::endl; #include <ctime> подробнее

Показать сообщение отдельно
Профан
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 49
03.07.2011, 21:31  [ТС]     Что делает отператор Strlen?
Немного не понял смотри вот кусок программы

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