这里是来自编程珍珠的字符串函数。
int wordncmp(char *p, char* q)
{ int n = k;
for ( ; *p == *q; p++, q++)
if (*p == 0 && --n == 0)
return 0;
return *p - *q;
}
int sortcmp(char **p, char **q)
{ return wordncmp(*p, *q);
}
char *skip(char *p, int n)
{ for ( ; n > 0; p++)
if (*p == 0)
n--;
return p;
}
我不明白 sortcmp() 的作用是什么?并且 skip 函数是否从 char *p 或什么返回非 null 终止部分? 请解释。
最佳答案
这完全是猜测,因为我没有这本书的拷贝,但看起来这些函数用于处理非常规字符串格式,该格式由一系列由空字符分隔的“单词”组成。
wordncmp()
比较前k
个单词,其中k
大概是调用函数之前要设置的全局变量。<sortcmp()
接受指向字符串指针的指针,并且大概是在使用qsort()
对字符串指针数组进行排序时用作比较器。skip()
跳过字符串中的n
个单词。
在 C++ 中,您最好使用标准字符串和算法库来执行此类操作;很少有充分的理由来处理指针和非常规的字符串表示。
关于c++ - 来自编程珍珠的字符串函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3370480/