zoukankan      html  css  js  c++  java
  • sscanf,sprintf用法

    #include<string.h>
    #include<stdio.h>
    
    int main()
    {
    char buf[512],sztime1[16],sztime2[16];
    sscanf("123456 ", "%s", buf);//此处buf是数组名,它的意思是将123456以%s的形式存入buf中!
    printf("%s
    ", buf);
    
    sscanf("123456 ", "%4s", buf);//取最大长度为4字节的字符串
    printf("%s
    ", buf);
    
    sscanf("123456a bcdedf", "%[^ ]", buf);//取到指定字符为止的字符串。如在下例中,取遇到空格为止字符串。
    printf("%s
    ", buf);
    
    sscanf("123456abcdedfBCDEF", "%[1-9a-z]", buf);//取仅包含指定字符集的字符串。如在下例中,取仅包含1到9和小写字母的字符串。
    printf("%s
    ", buf);
    
    sscanf("123456abcdedfBCDEF", "%[^A-Z]", buf);//取到指定字符集为止的字符串。如在下例中,取遇到大写字母为止的字符串。
    printf("%s
    ", buf);
    
    //给定一个字符串iios/12DDWDFF@122,获取 / 和 @ 之间的字符串,先将 "iios/"过滤掉,再将非'@'的一串内容送到buf中
    sscanf("iios/12DDWDFF@122", "%*[^/]/%[^@]", buf);
    printf("%s
    ", buf);
    
    //给定一个字符串"hello, world",仅保留world。(注意:","之后有一空格,%s遇空格停止,加*则是忽略第一个读到的字符串)
    sscanf("hello, world", "%*s%s", buf);//%*s表示第一个匹配到的%s被过滤掉,即hello被过滤了,如果没有空格则结果为NULL。
    printf("%s
    ", buf);
    
    //sscanf的功能很类似于正则表达式, 但却没有正则表达式强大,所以如果对于比较复杂的字符串处理,建议使用正则表达式.
    //如果读取的字符串,不是以空格来分隔的话,就可以使用%[]。
    //%[]类似于一个正则表达式。[a-z]表示读取a-z的所有字符,[^a-z]表示读取除a-z以外的所有字符。
    sscanf("2006:03:18 - 2006:04:18", "%[0-9,:] - %[0-9,:]", sztime1, sztime2);
    printf("%s,%s
    ", sztime1,sztime2);
    
    //%[^-]匹配到‘-’默认为存到sztime1的字符串“2006:03:18”加空格符,
    //所以%s会默认输入“-2006:04:18”到sztime2这也就是%s前面加‘-’的原因。输出跟作者一样,但更易懂、易读。
    sscanf("2006:03:18-2006:04:18","%[^-]-%s",sztime1,sztime2);
    printf("%s,%s
    ", sztime1,sztime2);
    
    }
    
    
    int main()
    {
    char *p;
    char *q="abcdef";
    sprintf(p,"%s",q);
    printf("p=%s
    
    ",p);
    }
    
     
  • 相关阅读:
    ZeptoLab Code Rush 2015
    UVa 10048 Audiophobia【Floyd】
    POJ 1847 Tram【Floyd】
    UVa 247 Calling Circles【传递闭包】
    UVa 1395 Slim Span【最小生成树】
    HDU 4006 The kth great number【优先队列】
    UVa 674 Coin Change【记忆化搜索】
    UVa 10285 Longest Run on a Snowboard【记忆化搜索】
    【NOIP2016提高A组模拟9.28】求导
    【NOIP2012模拟10.9】电费结算
  • 原文地址:https://www.cnblogs.com/timssd/p/4091016.html
Copyright © 2011-2022 走看看