首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

,sscanf分解字符串.

2012-03-09 
求助,sscanf分解字符串.现在有一字符串,例如: /var/test,file,2007,yes想要用sscanf函数一次将这字符串以

求助,sscanf分解字符串.
现在有一字符串,例如: /var/test   ,   file     ,   2007   ,   yes

想要用sscanf函数一次将这字符串以逗号为分隔符,并且同时把分隔开的每个字符串(一共有四个)两边的空格和制表符也一并去掉.不知道是不是可行.   目前本人只能先用sscanf分割到两边还有空格和制表符,再用sscanf将各个子字符串两边字符去掉.

附自己的sscanf:
rc   =   sscanf(str, "%[^,],%s[^,],%s[^,],%s[^,],%[^\n] ",   str1,str2,str3,str4,str5);

[解决办法]
试试strtok.
/*in: char * str; out: char **res */
char sep[] = " ,\t ";
p = _tcstok( szBuf, sep ) ;
while( p ) {
strcpy( res++, p ) ;
p = _tcstok( NULL, sep ) ;
}

[解决办法]
建议用strtok或者判断每个字符

sscanf的正则只能简单判断字符集,
用 "%[ ,\t]%s%[ ,\t]%s%[ ,\t] "(还要判断第一个是否分割符)或者 "%s%s%s%s "
[解决办法]
sscanf不能用逗号分解字符串,因为逗号是字符串的一部分
[解决办法]
sscanf的分解符是空格 TAB 回车

或者学习正则

热点排行