Witam
mam za zadanie napisać funkcję w języku C, która przekształci napis wejściowy wg podanych zasad: samogłoski po prawej stronie znaku | np. "|a\n"
spółgłoski po lewej stronie zaku np "b|\n"
przykład poniżej:
"Codewars", "C|\n|o\nd|\n|e\nw|\n|a\nr|\ns|"
kod poniżej:
#include <stddef.h>
// sorted has enough room for (strlen(string) * 3 + 1) characters
char *sort_vowels (const char *string, char *sorted)
{
*sorted = '\0'; // write to sorted
if(string==NULL)
return sorted;
int i;
for(i=0;i<strlen(string);i++){
char c=toupper(string[i]);
if(c=='A'||c=='E'||c=='I'||c=='O'||c=='U')
sprintf(sorted+strlen(sorted),"|%c\n",string[i]);
else
sprintf(sorted+strlen(sorted),"%c|\n",string[i]);
}
sorted[i*3-1]='\0';
return sorted;
}
Czy można ten kod napisać w jakiś prostszy i bardziej elegancki sposób.