增强版本的程序需求

效果演示

please input word:abandon
find 2 trans:
--------------------------------------
1vt. 放弃;沉溺
2n.  放任
--------------------------------------

程序结构体设计

typedef struct 
{
    char *key;
    char **trans;
    unsigned int count;
}word_t;

程序的内存结构

代码经验分享

isspace可能会造成程序崩溃

有些平台的isspace以及isdigit等函数只能判断ASCII码的范围,所以在中国大陆就只能呵呵了。这算那些库代码作者的歧视吗?

strtok函数

详细读一遍 strtok的cplusplus文档。

  • 函数参数和功能

分解字符串为一组字符串。s为要分解的字符,delim为分隔符字符(如果传入字符串,则传入的字符串中每个字符均为分割符)。首次调用时,s指向要分解的字符串,之后再次调用要把s设成NULL。

  • 返回值

    从s开头开始的一个个被分割的串。当s中的字符查找到末尾时,返回NULL。如果查找不到delim中的字符时,返回当前strtok的字符串的指针。 所有delim中包含的字符都会被滤掉,并将被滤掉的地方设为一处分割的节点。

  • 注意点

    strtok函数会破坏被分解字符串的完整,调用前和调用后的s已经不一样了。 如果只是需要判断字符串中某些字符 出现的XXX 可以考虑使用strstr、strchr等可重入函数。