就是使用sscanf解析uri,找不到合适的format。
uri: /abc/efg.html
char * first,*middle,*end;
sscanf(uri,"/%s/%s.%s",first,middle,end);
sscanf(uri,"%*[/]%s%*[/]%s%*[.]%s"first,middle,end);
上面两个format都错误,大家还知道怎么解析吗?还请告知一下。谢谢谢谢。
就是使用sscanf解析uri,找不到合适的format。
uri: /abc/efg.html
char * first,*middle,*end;
sscanf(uri,"/%s/%s.%s",first,middle,end);
sscanf(uri,"%*[/]%s%*[/]%s%*[.]%s"first,middle,end);
上面两个format都错误,大家还知道怎么解析吗?还请告知一下。谢谢谢谢。
这个问题是在:
char * uri = "/adb/cde.html";
char begin,middle,*end;
不可以用指针;
char uri[1024] = "/abc/cdf.html";
char begin[128],middle[128],end[128];
sscanf中参数得是数组,不能是指针。
这样就可以了。
至于原因:
我看见了两个sscanf的原型:
int sscanf( string str, string fmt, mixed var1, mixed var2 ... );
int sscanf(const char str, const char format, ...)
可能跟这个有关?我也不清楚,谁要是知道的话,还请讲一下,谢谢。
6.12更新:
因为使用数组,数据是在栈上分配的,而使用指针的话,只有指针自身驻留在栈上,而数据是在可执行文件的只读段。