ssprintf,sscanf两个黑科技的作用
关于这2个函数的使用方法网上一搜一大把,可我却还没有发现有好的文章来介绍它们在写题时的神奇用法。这里我也不做过多介绍,就讲一讲它们真正需要用到它们的地方。
int a=13345678;
char s[25]="\0";
我们知道,对于int这些数字类型我们无法直接对其某一位上的数字进行操作,但是字符串却有随机操作的优点,可以直接对其中某一个字符进行操作。那么我们是否可以把一个int类型(不仅是int这里只是方便说明)的存到一个字符串里再进行所需要的操作之后再读取出来呢?ssprintf和sscanf就很好的满足了这一操作,
ssprintf(s,"%s",a); 这个语句可以将int 型的a以字符串的形式打印到s里面,此时s为13345678+'\0',然后假设我们要把a变成12345678,只要执行 s[1]='2'; 便行了,此时s就变成了12345678+'\0',然后再通过执行:
sscanf(s,"%d",&a); 这个语句就可以把s以整形十进制的形式输入到a中了。此时a就变成了12345678。
读者可以去做一做poj-3126,就可以用到这个技巧哦!附上链接:点击打开链接 题解可以在我的BFS分类里找哦亲!
是不是很方便呢?在高精度的进制的转换中它们也可以起到很好的作用哦,不如仔细思考思考吧!