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ę]].
<sourcesyntaxhighlight lang="c">
typedef struct _string
{
Linia 12:
struct _string *next;
} *string;
</syntaxhighlight>
</source>
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:
<sourcesyntaxhighlight lang="c">
typedef struct _string
{
Linia 28:
fputc(strum, wsk->c); /* wypisz znak */
}
</syntaxhighlight>
</source>
Teraz zajmijmy się przypisaniem:
<sourcesyntaxhighlight lang="c">
typedef struct _string
{ char c;
Linia 48:
}
}
</syntaxhighlight>
</source>
 
Dla uproszczenia zapisu skorzystaliśmy z konstruktora klasy <tt>string</tt>. Tego jeszcze nie mamy, więc czas na niego:
<sourcesyntaxhighlight lang="c">
/* konstruktor */
string create_string(const char *initial)
Linia 77:
*s = NULL; /* zerujemy wskaźnik */
}
</syntaxhighlight>
</source>
 
=== Porównywanie ===
<sourcesyntaxhighlight lang="c">
char porownaj_str(string porownywany)
{
Linia 93:
return is_equal;
}
</syntaxhighlight>
</source>
 
===Konwersje===
Linia 119:
===Użycie===
Możemy teraz wypróbować naszą implementację:
<sourcesyntaxhighlight lang="c">
#include <stdio.h>
/* bibliotekę należy zapisać jako napisy.h */
Linia 130:
return 0;
}
</syntaxhighlight>
</source>