C/Napisy - własna implementacja: Różnice pomiędzy wersjami
Usunięta treść Dodana treść
m Wycofano edycje użytkownika 94.40.74.200 (dyskusja). Autor przywróconej wersji to 77.253.20.204. |
Nie podano opisu zmian |
||
Linia 4:
===Typ danych===
Typ zdefiniujemy jako [[C/Wskaźniki - więcej#Do czego można użyć wskaźników na funkcje?|klasę]].
<
typedef struct _string
{
Linia 12:
struct _string *next;
} *string;
</syntaxhighlight>
Zauważmy, że łańcuch automatycznie oznaczamy jako wskaźnik. W ten sposób zabezpieczamy się przed kopiowaniem.
===Metody===
Na początek zajmiemy się wypisywaniem łańcucha:
<
typedef struct _string
{
Linia 28:
fputc(strum, wsk->c); /* wypisz znak */
}
</syntaxhighlight>
Teraz zajmijmy się przypisaniem:
<
typedef struct _string
{ char c;
Linia 48:
}
}
</syntaxhighlight>
Dla uproszczenia zapisu skorzystaliśmy z konstruktora klasy <tt>string</tt>. Tego jeszcze nie mamy, więc czas na niego:
<
/* konstruktor */
string create_string(const char *initial)
Linia 77:
*s = NULL; /* zerujemy wskaźnik */
}
</syntaxhighlight>
=== Porównywanie ===
<
char porownaj_str(string porownywany)
{
Linia 93:
return is_equal;
}
</syntaxhighlight>
===Konwersje===
Linia 119:
===Użycie===
Możemy teraz wypróbować naszą implementację:
<
#include <stdio.h>
/* bibliotekę należy zapisać jako napisy.h */
Linia 130:
return 0;
}
</syntaxhighlight>
|