首页 > 技术文章 > c语言中sscanf()与sprintf()的使用

airduce 2018-05-09 16:15 原文

#include<stdio.h>
void main(void){
    char * cgistr = "|Ip=192.168.1.78|Port=5678|DbName=haha|User=hehe|Pwd=123456|";
    char cBusIp[16]="";
    int nPort = 0;
    char cDbName[64] = "";
    char cUser[64] = "";
    char cPwd[64] = "";
    char cQuestCmd[16]="";
    sscanf(cgistr, "|Ip=%[^|]|Port=%d|DbName=%[^|]|User=%[^|]|Pwd=%[^|]|", cBusIp, &nPort, cDbName, cUser, cPwd);
    printf(cBusIp);
    printf("\n");

    sprintf(cQuestCmd, "hget %s_Infor OWner", cDbName);
    printf(cQuestCmd);
    printf("\n");
}

 控制台输出:

  192.168.1.78
  hget haha_Infor OWner
这么一看就明白了吧。

在字符串中:

    C 库函数 int sscanf(const char *str, const char *format, ...) 从字符串读取格式化输入。

    C 库函数 int sprintf(char *str, const char *format, ...) 发送格式化输出到 str 所指向的字符串。

在流中:

    C 库函数 int fprintf(FILE *stream, const char *format, ...) 发送格式化输出到流 stream 中。

    C 库函数 int fscanf(FILE *stream, const char *format, ...) 从流 stream 读取格式化输入。

"%n[a-z]" 读入最多n个字符,如果遇到非a-z的字符,停止
"%[^=]" 读入任意多的字符,直到遇到"="停止
"%n[^=]" 读入"="号前的至多n 个字符

 

推荐阅读