对纯C不是很了解,查了函数手册也不是很懂这句代码...(sscanf函数)
#include<stdio.h>
#include<string.h>
int main(){
char *tmpStr = "ab.cdefg.hijkl,o,p.q.xyz";
char str[100];
int sum=0, n;
int len = strlen(tmpStr)-1;
while(sum < len){
sscanf(tmpStr+sum, "%[^.]%*c%n", str, &n);
//sscanf_s(tmpStr+sum, "%[^.]%*c%n", str, &n); //sscanf_s在VC不会被告警
sum+=n;
puts(str);
getchar();
}
return 0;
}
1、为什么tmpStr还要加上sum去步进呢?
2、%[^.]我知道中文意思是:不匹配.符号,剩下那些字母baidu了,也无法理解....
有人愿意解释整个代码么? 谢谢!!
[解决办法]
%[^.] 读取字符串直到.不含.
%*c 跳过一个字符,此处即跳过.
%n 返回此时读了几个字符到后面的变量中,此处为n
[解决办法]