Come posso verificare se una stringa termina con ".csv" in C
Come posso controllare se una stringa termina con ".csv" in C
Ho provato con strlen
senza alcun successo
Come posso verificare se una stringa termina con ".csv" in C
Come posso controllare se una stringa termina con ".csv" in C
Ho provato con strlen
senza alcun successo
Che ne dite:
char *dot = strrchr(str, '.');
if (dot && !strcmp(dot, ".csv"))
/* ... */
if(strlen(str) > 4 && !strcmp(str + strlen(str) - 4, ".csv"))
Puri awesomeness :-) – cnicutar
Quindi, '" .csv "' non termina con '" .csv "'? –
Di solito un file '.whatever' è considerato avere il nome' .whatever' e nessuna estensione. Quindi per i suoi casi d'uso questo ha più senso. IMO. – ThiefMaster
Il più semplice (e più in generale) sotto forma di codice di ThiefMaster sarebbe:
int string_ends_with(const char * str, const char * suffix)
{
int str_len = strlen(str);
int suffix_len = strlen(suffix);
return
(str_len >= suffix_len) &&
(0 == strcmp(str + (str_len-suffix_len), suffix));
}
'str' essendo la stringa –
questo, però, non funziona per i casi in cui la stringa contiene più di periodo (non probabile, ma sicuramente possibile) – kappamaki
@kappamaki: Questo funziona perché' strrchr' trova il più a destra punto. –