• sprintf和sscanf


    sprintf

    一个可以将输入打印到字符串的函数,用法与printf差不多

    可以参考这篇文章:

    http://blog.csdn.net/masibuaa/article/details/5634886

    //把整数123 打印成一个字符串保存在s 中。
      sprintf(s, "%d", 123); //产生"123"
      可以指定宽度,不足的左边补空格:
      sprintf(s, "%8d%8d", 123, 4567); //产生:" 123 4567"
      当然也可以左对齐:
      sprintf(s, "%-8d%8d", 123, 4567); //产生:"123 4567"

    sscanf

    http://www.cnblogs.com/lyq105/archive/2009/11/28/1612677.html

    1. 常见用法。
      char buf[512] = ;
      sscanf("123456 ", "%s", buf);
      printf("%s ", buf);
      结果为:123456
      2. 取指定长度的字符串。如在下例中,取最大长度为4字节的字符串。
      sscanf("123456 ", "%4s", buf);
      printf("%s ", buf);
      结果为:1234
      3. 取到指定字符为止的字符串。如在下例中,取遇到空格为止字符串。
      sscanf("123456 abcdedf", "%[^ ]", buf);
      printf("%s ", buf);
      结果为:123456
      4. 取仅包含指定字符集的字符串。如在下例中,取仅包含1到9和小写字母的字符串。
      sscanf("123456abcdedfBCDEF", "%[1-9a-z]", buf);
      printf("%s ", buf);
      结果为:123456abcdedf
      5. 取到指定字符集为止的字符串。如在下例中,取遇到大写字母为止的字符串。
      sscanf("123456abcdedfBCDEF", "%[^A-Z]", buf);
      printf("%s ", buf);
      结果为:123456abcdedf
      6、给定一个字符串iios/12DDWDFF@122,获取 / 和 @ 之间的字符串,先将 "iios/"过滤掉,再将非'@'的一串内容送到buf中
      sscanf("iios/12DDWDFF@122", "%*[^/]/%[^@]", buf);
      printf("%s ", buf);
      结果为:12DDWDFF
      7、给定一个字符串““hello, world”,仅保留world。(注意:“,”之后有一空格)
      sscanf(“hello, world”, "%*s%s", buf);
      printf("%s ", buf);
      结果为:world
      %*s表示第一个匹配到的%s被过滤掉,即hello被过滤了
      如果没有空格则结果为NULL。
      sscanf的功能很类似于正则表达式, 但却没有正则表达式强大,所以如果对于比较复杂的字符串处理,建议使用正则表达式.

  • 相关阅读:
    Invalid bound statement (not found)解决方法
    MySQL的sum()函数
    关于Mybatis的java.lang.UnsupportedOperationException异常处理
    博客迁移
    Building Blog(个性化博客)2
    走一波服务器
    JZ高中OJ 1036. [SCOI2009]迷路
    JZ初中OJ 2296. [noip普及组2]神殿
    JZ初中OJ 2295. [noip普及组2]栈
    JZ初中OJ 2298. [noip普及组2]异或
  • 原文地址:https://www.cnblogs.com/qlky/p/5165017.html
Copyright © 2020-2023  润新知