#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(" "); sprintf(cQuestCmd, "hget %s_Infor OWner", cDbName); printf(cQuestCmd); printf(" "); }
控制台输出:
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 个字符