c# 测试指针数组中是否有值

xvw2m8pv  于 2022-12-28  发布在  C#
关注(0)|答案(1)|浏览(210)

我主要是想测试char *tk[2];是否有值或者没有存储。
当tk[0]和tk[1]都有值(每个都存储一个字符)时,我的程序必须做一些事情,但当只有tk[0]被初始化为某个值而tk[1]为“空”时,我的程序也要做一些其他的事情。
这是我初始化指针数组的函数,使用strtok。关键字可以是“key1 key2”或“key1”,所以最多2个字。

void key(char *keywords[], char *tk[], int k) {
    int p = 0;
    char *delim = " \n";
    int length = strlen(keywords[k]);
    char buffer_key[length];
    strcpy(buffer_key, keywords[k]);
    char *token_key = strtok(buffer_key, delim);
    while (token_key != NULL) {
        tk[p++] = token_key;
        token_key = strtok(NULL, delim);
    }
}

这是我的主函数的代码块,我调用了key函数。

char *tk[2];
     key(keywords, tk, k);

接下来我想检查是否只有tk[0]存储了一个字符(那么tk[1]是空的?).我该怎么检查呢?

kq0g1dla

kq0g1dla1#

在调用函数之前,先初始化tk,然后测试返回后是否填充了值。

char *tk[2] = {0};
key(keywords, tk, k);
if (tk[0] && !tk[1]) {
    // do something
}

相关问题