syllable.c: add syllable_chain_to_string()

This commit is contained in:
Vlasta Vesely 2018-04-25 15:29:24 +02:00
parent b52f8610ad
commit e4fbd8bbfb
2 changed files with 32 additions and 0 deletions

View file

@ -30,3 +30,32 @@ struct syllable *syllable_append(struct syllable *tail, const char *data)
return ptr; return ptr;
} }
unsigned long syllable_chain_length(struct syllable *head)
{
struct syllable *walk = head;
unsigned int length = 0;
while (walk) {
length += strlen(walk->data);
walk = walk->next;
}
return length;
}
char *syllable_chain_to_string(struct syllable *head)
{
struct syllable *walk = head;
unsigned int length = syllable_chain_length(head);
char *buffer = malloc(length + 1);
char *ptr = buffer;
while (walk) {
strcpy(ptr, walk->data);
ptr += strlen(walk->data);
walk = walk->next;
}
return buffer;
}

View file

@ -11,4 +11,7 @@ void syllable_drop(struct syllable *syllable);
struct syllable *syllable_append(struct syllable *tail, const char *data); struct syllable *syllable_append(struct syllable *tail, const char *data);
unsigned long syllable_chain_length(struct syllable *head);
char *syllable_chain_to_string(struct syllable *head);
#endif /* __SYLLABE_H */ #endif /* __SYLLABE_H */