C/Napisy - własna implementacja: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
literówka
komentarze, zmiejszenie zmiennej is_equal do 1 B
Linia 40:
void wpisz_do_str(const char *new_string)
{
for(;new_string && *new_string;++new_string) //pętla po zwykłym napisie
{
string new_char = create_string(""); //tworzymy pusty napis
new_char->c = *new_string; //ustawiamy znak
new_char->next = NULL; //zaznaczamy koniec napisu
str->next = new_char; //dodajemy znak na końcu napisu
}
}
Linia 55:
string create_string(const char *initial)
{
string new_string = malloc(sizeof *new_string); /* alokacja napisu */
new_string->wypisz = wypisz_str; /* ustawienie wskaźników na metody */
new_string->wpisz = wpisz_do_str;
for(;initial && *initial;++initial) /* inicjalizacjapętla inicjalizująca (po zwykłym napisie) */
{
struct _string new_char; /* nowy napis */
new_char->.c = *new_string; /* znak */
new_char->next = NULL; /* koniec napisu */
tmp->next = new_char; /* dodanie znaku na końcu napisu */
}
str = new_string; /* ustawienie adresu ostatniego napisu */
return new_string; /* zwrócenie wskaźnika do napisu */
}
/* destruktor */
void free_string(string *s)
{
if(*s == NULL)return; /* nie zwalniamy pustych napisów */
if((*s)->next)free_string(s->next); /* rekurencja - usuwamy kolejny napis */
free(*s); /* zwalniamy cały napis */
str = NULL; /* wyzerowanie wskaźnika na ostatni napis */
}
</source>
Linia 80:
=== Porównywanie ===
<source lang="c">
intchar porownaj_str(string porownywany)
{
intchar is_equal;
string wsk = str;
for(;wsk != NULL;wsk = wsk->next)