void GetKV(const char* data) { // 对原始数据做一份拷贝 char buffer[1024]; strcpy(buffer, data); char key[256], value[256]; bool ignore = false; char* bpos = buffer; for (char* pos = buffer; *pos; pos++) { if (*pos == '"') ignore = !ignore; if (!ignore && (*pos == '=')) { *pos = 0; strcpy(key, bpos); bpos = pos + 1; } if (!ignore && (*pos == ';')) { *pos = 0; strcpy(value, bpos); bpos = pos + 1; printf("%s=%s\n", key, value); } } } int main() { const char* data = " abc =b\\n ;c=\\x61d;d=234;t=\\n;d=\"test;yes\";"; GetKV(data); return 0; } 这题主要考的就是引号里面的=和;的处理
这题主要考的就是引号里面的=和;的处理