• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

sprawdzenie wielkości dynamicznej tablicy i jej przypisania do nowej C++

Object Storage Arubacloud
0 głosów
637 wizyt
pytanie zadane 18 kwietnia 2017 w C i C++ przez Programeł Gaduła (3,500 p.)

Witam 

Nie wiem dokładnie jak opisać problem ale nie mogę sprawdzić ile tablica dynamiczna ma znaków w sobie i późnej jej przypisania do innej.

#include <iostream>

using namespace std;

class Str
{
private:
    char *name;
    int len;
public:
    Str();
    Str(const char * n);
    ~Str();
    friend operator<<(ostream & os,Str & s);
};

int main()
{

    return 0;
}

Str::Str(const char *n)
{
    len = strlen(n);
    name = new char[len + 1];
    strcpy(name,n);
}

Za wszelką pomoc dziekuje ;)  

komentarz 18 kwietnia 2017 przez draghan VIP (106,230 p.)

nie mogę sprawdzić ile tablica dynamiczna ma znaków w sobie i późnej jej przypisania do innej

Dlaczego nie możesz, co Cię przed tym powstrzymuje?

komentarz 18 kwietnia 2017 przez Programeł Gaduła (3,500 p.)
przeniesione 18 kwietnia 2017 przez draghan
Przepraszam

źle sie wyraziłem :P

chodzi o to że jak zainicjalizuje tablice podczas tworzenia obiektu słowem "Ada", przez konstruktor, to ma mi wtedy stworzyć tablice z 4 miejscami (Na koncu znak NULL, dlatego 4) .

A nawet nie wiem jak sprawdzić ile znaków ma tablica zainicjalizowana :P
komentarz 18 kwietnia 2017 przez JAKUBW Nałogowiec (33,470 p.)

jeżeli piszesz "Ada" to ma już znak \0 (NULL dla znaków) na końcu. 

int ile_znakow(const char* str)
{
	int ile = 0;
	while (*str != '\0')
	{
		ile++;
		str++;
	}
	return ile;
}

A ile znaków na? najlepiej przechowywać to w zmiennej typu std::size_t;

komentarz 18 kwietnia 2017 przez draghan VIP (106,230 p.)
Programeł - jak chcesz coś dopowiedzieć do pytania, zrób to w komentarzu. Odpowiedzi są od... odpowiedzi. ;)

Masz funkcję strlen do określenia długości łańcucha. Czego więcej Ci potrzeba?
komentarz 18 kwietnia 2017 przez Programeł Gaduła (3,500 p.)
Wybacz draghan, ale myślałem że może ktoś tego nie zauważyć

W książce z mam właśnie funkcje strlen ale program nie chce się skompilować :P Czy to wina Code::Blocks czy jak ?
komentarz 18 kwietnia 2017 przez draghan VIP (106,230 p.)
Oj, ludzie, ludzie... To trzeba tak od razu, że się nie kompiluje. Podaj komunikat błędu. ;)
komentarz 18 kwietnia 2017 przez Programeł Gaduła (3,500 p.)
'strlen' was not declared in this scope

Wiem tylko że chodzi to że  strlen jakby tu nie siega chyba jakby było w przestrzeni nazw :P

czyli nic ;(
komentarz 18 kwietnia 2017 przez draghan VIP (106,230 p.)

Jak widać w dokumentacji, ta funkcja jest zadeklarowana w nagłówku cstring. Trzeba go włączyć do programu.

komentarz 18 kwietnia 2017 przez Programeł Gaduła (3,500 p.)
hmm.. rzeczywiście i wkońcu zadziałało !

Wielkie dzięki i jeszcze raz przepraszam że nie wyjaśniłem dokładnie mojego problemu ;)
1
komentarz 18 kwietnia 2017 przez draghan VIP (106,230 p.)
Postaraj się na przyszłość trafniej opisywać problem. Powodzenia w nauce. :)

2 odpowiedzi

0 głosów
odpowiedź 18 kwietnia 2017 przez tangarr Mędrzec (154,860 p.)
Nie możesz tego sprawdzić. Musisz to zapamiętać.
Opcjonalnie możesz użyć standardowego kontenera (std::string, std::array, std::list, std::vector).
komentarz 18 kwietnia 2017 przez draghan VIP (106,230 p.)
Autor chyba źle się wyraził - on chce sprawdzić długość łańcucha. A skoro pisze klasę Str, to zapewne uczy się zarządzać pamięcią, więc kontenery z std odpadają - takie moje przypuszczenia.
0 głosów
odpowiedź 18 kwietnia 2017 przez Kurogami12 Bywalec (2,610 p.)
żeby sprawdzić musisz po prostu stworzyć funkcje do sprawdzania wewnątrz klasy Str, umieścić ją jako publiczną np void Ileznakow() i później tylko ją odpowiednio uzupełnić (o ile o to Ci chodzi
komentarz 18 kwietnia 2017 przez Programeł Gaduła (3,500 p.)
A wiesz jak przenieść zawartość z jednej tablicy do drugiej ?
komentarz 18 kwietnia 2017 przez Kurogami12 Bywalec (2,610 p.)
pętlą a jeśli chcesz przenieść chara to jest gotowa do tego funkcja której z resztą użyłeś

Podobne pytania

0 głosów
1 odpowiedź 2,442 wizyt
0 głosów
0 odpowiedzi 220 wizyt
0 głosów
1 odpowiedź 199 wizyt

92,588 zapytań

141,439 odpowiedzi

319,688 komentarzy

61,974 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...