寻找一种行之有效的生产算法。
即file_10.txt> file_2.txt
谢谢。
我假设您已经知道C标准库qsort()功能:
qsort()
void qsort(void *base, size_t nel, size_t width, int (*compar)(const void *, const void *);
最后一个参数是一个 函数指针 ,这意味着您可以将任何函数传递给它。strcmp()实际上,您可以使用,但是这样可以给您ASCIIbetical,并且您特别想要自然排序。
strcmp()
在这种情况下,您可以轻松编写一个:
#include <ctype.h> int natural(const char *a, const char *b) { if(isalpha(*a) && isalpha(*b)) { // compare two letters } else { if(isalpha(*a)) { // compare a letter to a digit (or other non-letter) } else if(isalpha(*b)) { // compare a digit/non-letter to a letter } else { // compare two digits/non-letters } } }
else如果您很return早就可以清除某些s ,但是有一个基本结构。检查ctype.h像功能isalpha()(如果一个字符是字母的一部分)isdigit(),isspace()以及更多。
else
return
ctype.h
isalpha()
isdigit()
isspace()