将字符串拆分为两个

时间:2016-04-29 01:20:06

标签: c string

 entry -> data 

持有

"key_string \0 value_string \0"

(即两个连接和空终止的字符串)

我想将密钥和值传递给

kvstore_put(&(server ->store), key, value);

作为论据。

2 个答案:

答案 0 :(得分:2)

你不需要复制任何东西 - 它可以用指针完成。因为它以null结尾,所以输入字符串可以作为键加倍。可以使用以下字符串指针设置该值:

char *pszValue = strchr (pszKeyString, 0)+1;

没有复制,非常简单的实现。

答案 1 :(得分:1)

方法的一个例子:

width
另一种方式:

#include <stdio.h>
#include <string.h>

void kvstore_put(char key_value[], char key[], char value[]){
    strcpy(key, key_value);
    strcpy(value, strchr(key_value, '\0') + 1);
}

int main(void){
    char kv[] = "key\0value\0";
    char key[sizeof kv];
    char value[sizeof kv];

    kvstore_put(kv, key, value);
    puts(key);
    puts(value);
    return 0;
}