sscanf有没有办法提取两个字符串中间的字符串

C语言 码拜 8年前 (2016-04-25) 2736次浏览
例如,从
“”ttt=eee&name=aaaaaaaaaaa&pass=bbbbbgbb&usession=undefined””
中提取aaaaaaaaaaa
本人的正则表达示用(.*name=)%s,连“name=”后面的字符串都取不到。
解决方案

10

用毛线正则表达式,直接strstr “&name=”就行了

10

char s[]="ttt=eee&name=aaaaaaaaaaa&pass=bbbbbgbb&usession=undefined";
char t[40];
if (1==sscanf(s,"ttt=%*[^&]&name=%39[^&]",t)) printf("[%s]\n",t);

10

引用:
Quote: 引用:
char s[]="ttt=eee&name=aaaaaaaaaaa&pass=bbbbbgbb&usession=undefined";
char t[40];
if (1==sscanf(s,"ttt=%*[^&]&name=%39[^&]",t)) printf("[%s]\n",t);

%39是什么意思?

限定最多读入39个非&字符。原因是t[40],后面还要留一个字节给”\0″

10

char s[]="ttt=eee&name=aaaaaaaaaaa&pass=bbbbbgbb&usession=undefined";
char *p;
char t[40];
p=strstr(s,"&name=");
if (p) if (1==sscanf(p+6,"%39[^&]",t)) printf("name=[%s]\n",t);

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明sscanf有没有办法提取两个字符串中间的字符串
喜欢 (0)
[1034331897@qq.com]
分享 (0)