Как два раза подряд использовать strchr в языке С

Нужно что бы функция strchr удалила дважды все символы перед запятой тоесть что бы остался фрагмент ,lok,dim . В моем случае, остается только ,dipric,lok,dim . Я понимаю, что функция strchr работает только из const char , но не могу понять как свое понимание реализовать в коде.

#include <stdio.h>
#include <string.h>

int main () {
    const char str[] = "gomon,dipric,lok,dim";
    const char comma = ','; 
    char *ret;
    ret = strchr(str, comma);
    ret = strchr(ret, comma);
    printf("%s", ret);
    return(0);
}

Ответы (1 шт):

Автор решения: Fat-Zer

При втором вызове strchr надо начинать поиск с первого символа в строке т.к. если начать поиск с нулевого, то он будет запятой и будет возвращён, так что нужно просто добавить единичку:

ret = strchr(str, comma);
assert(ret);
ret = strchr(ret+1, comma);

Также на практике стоит добавлять проверку после первого поиска или хотя бы assert.

→ Ссылка