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

调用sscanf获取字符串,怎么保证不越界

2013-08-09 
调用sscanf获取字符串,如何保证不越界想通过调用sscanf函数获取某些对应的字符串,如何保证不越界char a[]

调用sscanf获取字符串,如何保证不越界
想通过调用sscanf函数获取某些对应的字符串,如何保证不越界
char a[] = "zhangsan-19890123-hangzhou";

sscanf(a, "%[^-]-%[^-]-%[^-]", name, year, addr);

如何声明name,year,adr三个变量,能实现即节省空间,又不会因为获取字符串而导致这三个变量越界
[解决办法]

char a[] = "zhangsan-19890123-hangzhou";
char name[128],year[9],addr[256];
if (3==sscanf(a, "%127[^-]-%8[^-]-%255[^-]", name, year, addr)) {
 printf("name=[%s],year=[%s],addr=[%s]\n",name,year,addr);
} else {
 printf("Format error:[%s]\n",a);
}

热点排行