Linux C sscanf、sprintf、printf、strdup、strstr举例

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、sscanf格式化函数(字符串 --> 变量)

•将指定字符串,格式化(分割)至特定变量中

time_t PubDateTimeToCalendar(const char * pszDateTime)

{

if(pszDateTime == NULL)

return 0;

time_t tTime = 0;

struct tm tm_Time;

memset(&tm_Time 0 sizeof(tm_Time));

sscanf(pszDateTime "%4d%2d%2d%2d%2d%2d"

&(tm_Time.tm_year) &(tm_Time.tm_mon)

&(tm_Time.tm_mday) &(tm_Time.tm_hour)

&(tm_Time.tm_min) &(tm_Time.tm_sec));

tm_Time.tm_year -= 1900; //tm_year从1900年算起

tm_Time.tm_mon -= 1; //tm_mon为0-11

tTime = mktime(&tm_Time);

return tTime;

}

2、springf格式化函数(变量-->字符串)

•十进制字符串(固定长度)

sprint(szTmp “%04d” index);

printf(“szTmp = %s” szTmp);

结果就会得到: szTmp = 0123;

•十进制字符串(非固定长度)

sprint(szTmp “%d” index);

printf(“szTmp = %s” szTmp);

结果就会得到: szTmp = 123;

•十六进制字符串(小写)(固定长度)

sprint(szTmp “%08x” index);

printf(“szTmp = %s” szTmp);

结果就会得到: szTmp = 0000007d;

•十六进制字符串(小写)(非固定长度)

sprint(szTmp “%x” index);

printf(“szTmp = %s” szTmp);

结果就会得到: szTmp = 7d

•十六进制字符串(大写)(固定长度)

sprint(szTmp “%08X” index);

prin tf(“szTmp = %s” szTmp);

结果就会得到: szTmp = 0000007D;

•十六进制字符串(大写)(非固定长度)

sprint(szTmp “%X” index);

printf(“szTmp = %s” szTmp);

结果就会得到: szTmp = 7D;

3、printf格式化函数(变量-->终端输出)

同sprintf

4、strdup函数

•说明

用法:#include

功能:复制字符串s 。

返回指向被复制的字符串的指针,所需空间由malloc()分配且可以由free()释放。

•举例

// strdup.c

#include

#include

main()

{

char *s="this is just f";

char *d;

d=strdup(s);

printf("%s"d);

getchar();

return 0;

}

strdup()主要是拷贝字符串s的一个副本,由函数返回值返回,这个副本有自己的内存空间,和s不相干。

char *strdup(const char *s)

{

char *t = NULL;

if (s && (t = (char*)malloc(strlen(s) + 1)))

strcpy(t s);

return t;

}

注意:而不是说自动释放!!!

5、strstr 在字符串中,查找特定字符串

char *p = NULL;

p = strstr(szTemp226Buf "226");

if(p == NULL)

return -1;

相关文档
最新文档