如何在C字符串中嵌入双引号?

时间:2014-07-23 23:43:40

标签: c string char strtok

我的字符串是JSON,这意味着它有引号(")标记值和键的所有内容。

尝试使用分隔符和子分隔符,我无法找到一种方法来添加引号作为delim的一部分,而不会出现语法错误。我缺少一步吗?试图保持代码简单和紧凑。

代码

 char* delim = "{}";
 char* subdelim = ":,";   

char *str1, *token, *name, *value;

int parse_count = 0;
for (str1 = stringToParse; parse_count<num ; str1 = NULL) {
    token = strtok(str1, delim);
    if (token == NULL)
        break;
    name = strtok(token, subdelim);
    value = strtok(NULL, subdelim);
    if (name == NULL || value == NULL) {
        continue;
    }
    strcpy (ptr->name, name);
    strcpy (ptr->value, value);
    ptr++;
    parse_count++;

   }
 return name_values;
}

输入字符串是一个char *数组:(抱歉,字符串是证书)

 {"first name":"Jhon","thumbprint":"*********","issuer":"CN=dccw, OU=cswde, O=xswe, 
 L=sdewc","validto":"Mon Jan 01 22:59:59 EST 
 2018","lastname":"Doe","userid":"DJhon","valid from":"Mon Aug 15 
 00:00:00 EDT 2011","subjectInfor":"************"}

输出:

 printf("%s=%s\n", params->name, params->value);

 "first name"="Jhon"
 "last name"="Doe"
 "userid"="DJhon"

1 个答案:

答案 0 :(得分:0)

逃避它应该纠正你的问题......

char* subdelim = "\":,";