Jaki typ w C używac jako odpowiednik typu "string" z C++?

0

Chce zapytac jaki typ w c uzywac jako odpowiednik typu "string" w c++, mam np kod:

int main(){
  printf("Podaj swoje imie: ");
  char* imie;
  scanf("%s", imie);
  printf("%s", imie);
  return 0;
}

Co tu jest zle ? chcialbym zapytac jeszcze do czego dokladniej sluzy "*" ?

0

Używaj tablicy znaków, ale pamiętaj że będzie ona miała limit długości! np.
char tablica[100]; pomieści stringa nie dłuższego niż 99 znaków.
* oznacza wskaźnik, czyli zmienną liczbową która przechowuje adres w pamięci komputera pod którym znajduje się jakaś wartość. Twój kod jest blędny bo stworzyłeś wskaźnik któremu nie nadałeś wartości, więc jego wartość jest "losowa". Np. będzie tam liczba 12345 i próba pisania albo czytania z tego wskaźnika spowoduje próbę operacji na komórce pamięci komputera o tym numerze. Zwykle kończy sie to wysypaniem programu bo komputer nie lubi jak próbujesz mieszać po pamięci która nie jest twoja...

0

Czyli tablice to najlepsze rozwiazanie zeby pobierac i wypisywac napisy ? w porownaniu do typu string w c++ jest to troche dziwne ;d

1

No ale ten typ string to jest dość skomplikowana klasa ;) Jak chcesz to możesz sobie taką napisać, ale to jest raczej daleko poza twoimi możliwościami póki co...
std::string to nie jest typ wbudowany. Ktoś po prostu napisał kod który w oparciu o tablice znaków daje ci taki samorozszerzajacy sie "typ" ;]

0

Aaa, no okej :)

0

https://gcc.gnu.org/onlinedocs/gcc-4.6.3/libstdc++/api/a00771_source.html tu masz jakąś przykładową implementacje... ;]

1 użytkowników online, w tym zalogowanych: 0, gości: 1