Na początek zadeklarujmy nagłówek funkcji. Będzie ona zwracać indeks czyli liczbę całkowitą innymi słowy int, a argumenty to dwa napisy:
W zadaniu należy zauważyć, że dla każdego znaku z napisu x musimy sprawdzić czy ma swój odpowiednik w napisie s. Trudność tutaj polega na fakcie, że jak zawsze nie znamy długości napisu, więc musimy użyć pętli while. Tutaj będzie to pętla w pętli, bo pierwsza pętla będzie przechodziła po każdym znaku napisu s, a druga sprawdzi czy i-ty znak jest równy któremukolwiek z x. Idee takiego rozwiązania przedstawia poniższy kod:
Cele zadania określają, że jeśli w napisie s nie wystąpi żaden znak z x to ma zwrócić -1. W naszym przypadku zakończenie obu pętli oznacza, że mamy zwrócić -1. Wyjście z pętli w pętli oznacza, że któryś znak z s jest równy znakowi z x.
W treści polecenia określone zostało, że funkcja zwraca listę znaków, a jako argumenty przyjmuje napis s oraz liczbę całkowitą k.
W celu (2.) wyliczenia ile znaków zostanie przepisanych musimy znać długość tekstu, podzielić przez k ( co który wyraz wybieramy) i pobrać część całkowitą (tu castujemy na inta). (3.) Pamiętajmy, że nasz nowy napis musi zawierać wszystkie napisy do przepisania oraz znak specjalny \0. Problem może stwarzać (4. - 6.)przepisywanie, ponieważ zazwyczaj co drugi znak oznacza, ze wybieramy znaki o indeksie 2, 4, 6, ..., ale w informatyce liczenie zaczyna się od 0, więc musimy odjąć od każdego indeksu 1 czyli wtedy indeksy do wybrania to 1, 3, 5, ... (7.) Na sam koniec nie zależy zapomnieć o znaku końca linii \0. i (8.) zwróceniu wyniku.
Przykładowo funkcja main():