gpt4 book ai didi

c - 需要 char* 但实际是 char(*) [20]

转载 作者:太空宇宙 更新时间:2023-11-04 02:09:51 25 4
gpt4 key购买 nike

我正在尝试使用 sscanf 编写一个脚本来排除来自 GET 请求的数据。我似乎在使用 sscanf 解析它并将其传递给变量时遇到问题。我认为问题与我的 char 类型有关,但也可能与我的 Regex 字符串有关,因为该错误将组作为“%[a-z,A-Z”而不是像我一样的“%[a-z,A-Z]”期待它。您可以在 http://cs.mcgill.ca/~phwang3/cgi-bin/searchRecord.c 查看完整的源代码。 ,但我在此处突出显示了主要内容。

我好像遇到了错误

 warning: format ‘%[a-z,A-Z’ expects argument of type ‘char *’, but argument 3 has type ‘char * (*)[20]’ [-Wformat]

在这条线上

if(sscanf(data,"firstName=%[a-z,A-Z]&lastName=%[a-z,A-Z]",&firstName, &lastName)!=2) {

有问题的变量在上面一行之前声明为

char firstName[20] = {0};
char lastName[20] = {0};

我想,同样相关的是,查询存储在变量“数据”中,并且也在有争议的字符串之前声明。

char* data;
data = getenv("QUERY_STRING");

最佳答案

if(sscanf(data,"firstName=%[a-z,A-Z]&lastName=%[a-z,A-Z]",
&firstName, &lastName)!=2) {

您必须传递 firstNamelastName 而不是 &firstName&lastName

关于c - 需要 char* 但实际是 char(*) [20],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15721539/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com