Parsing sscanf解析
您好,我尝试分析此查询字符串:Parsing sscanf解析,parsing,scanf,Parsing,Scanf,您好,我尝试分析此查询字符串: pkname=Paras&key=password123 使用此代码: printf("Content-type:text/html\n\n"); printf("<html><body>"); data = getenv("QUERY_STRING"); if(data){ sscanf(data, "pkname=%10[^&]&key=%30[^&]&", pkname, ke
pkname=Paras&key=password123
使用此代码:
printf("Content-type:text/html\n\n");
printf("<html><body>");
data = getenv("QUERY_STRING");
if(data){
sscanf(data, "pkname=%10[^&]&key=%30[^&]&", pkname, key);
printf("%s", pkname);
printf("%s", key);
}
printf("</html></body>");
您没有显示变量
key
的定义,但它打印为(null)
这一事实强烈表明它的值为null,并且printf
和sscanf
都试图通过不在null指针上分段故障来保护您。(GNULBC实现就是这样做的;printf将NULL打印为(NULL)
,而sscanf似乎只是停止解析。)
你可能想要的是:
char pkname[11];
char key[31];
尽管您可能也会发现m
限定符很有用,因为它避免了指定任意字段长度限制的需要
char pkname[11];
char key[31];