Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Długość napisu w C


Rekomendowane odpowiedzi

Opublikowano

Witam,

Trzymam w char[500] jakiś napis i nie wiem jak sprawdzić jego długość. Proszę o pomoc, w ogóle chciałbym podyskutować na ten temat bo jak napis byłby dłuższy to co wtedy?

 

char * tekst = malloc(sizeof(char)*dlugosc);

 

Tylko jak mam znać długość jak jeszcze nie wczytałem napisu? Trochę to dla mnie zagmatwane mam nadzieję, że ktoś wie jak to ogarnąć. :D

giphy.gif

Opublikowano

Prosta metoda? Deklarujesz tablicę o wystarczającej wielkości. Zakładasz, że nikt nie wczyta tekstu dłuższego od, powiedzmy, 4000 znaków, to wtedy możesz zrobić char[4001]; (null terminator dodaje jeden)

Wtedy program umiera, jak ktoś wczyta coś dłuższego.

 

Trudniejsza, ale odporna na błędy metoda? Używasz malloc'a z jakąś wielkością, a potem używasz fgetc(stdin), by wczytać znak. Jeżeli fgetc nie zwraca EOF (lub newline), to robisz *ptr++ = wczytany_znak;

Jeżeli skończyło Ci się miejsce w tablicy, to używasz realloc'a do ponownej alokacji.

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...