Làm thế nào tôi có thể kiểm tra xem một chuỗi kết thúc với ".csv" trong C
Làm thế nào tôi có thể kiểm tra xem một chuỗi kết thúc với ".csv" trong C
Tôi đã cố gắng sử dụng strlen
mà không cần bất kỳ sự thành công
Làm thế nào tôi có thể kiểm tra xem một chuỗi kết thúc với ".csv" trong C
Làm thế nào tôi có thể kiểm tra xem một chuỗi kết thúc với ".csv" trong C
Tôi đã cố gắng sử dụng strlen
mà không cần bất kỳ sự thành công
Làm thế nào về:
char *dot = strrchr(str, '.');
if (dot && !strcmp(dot, ".csv"))
/* ... */
if(strlen(str) > 4 && !strcmp(str + strlen(str) - 4, ".csv"))
Tuyệt vời awesomeness :-) – cnicutar
Vì vậy, '" .csv "' không kết thúc bằng '" .csv "'? –
Thông thường một tệp '.whatever' được coi là có tên' .whatever' và không có phần mở rộng. Vì vậy, đối với trường hợp sử dụng của mình, điều này làm cho IMO có ý nghĩa hơn. – ThiefMaster
hình thức đơn giản (và tổng quát nhất) của mã ThiefMaster của sẽ là:
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' là chuỗi –
, tuy nhiên, sẽ không hoạt động đối với trường hợp chuỗi chứa nhiều hơn dấu chấm (không có khả năng, nhưng chắc chắn có thể) – kappamaki
@kappamaki: Điều này hoạt động vì' strrchr' tìm đúng nhất chấm. –