C语言中memset,strcpy、sprintf等函数的使用

以下的知识点比较零散,经常在编程中用到的,做个笔记:

1、memset

函数原型: void *  memset(void * Dst, int  Val, size_t Size);

作用: 将已经开辟内存空间Dst的首Size个字节的值设为值val

如:

memset(header->wsa__MessageID, 0, 100);             //清空header->wsa__MessageID的内容

2、strcpy

函数原型: extern char *strcpy(char *dest,char *src);

作用: 将src所指由NULL结束的字符串复制到dest所指的字符串中。

如:

strncpy(header->wsa__MessageID, _HwId, strlen(_HwId));            //将字符串_HwId的内容复制到header->wsa__MessageID字符串里面

3、sprintf

作用:字符串格式化命令

如:

sprintf(_HwId,"urn:uuid:%ud68a-1dd2-11b2-a105-%02X%02X%02X%02X%02X%02X",
                       Flagrand, macaddr[0], macaddr[1], macaddr[2], macaddr[3], macaddr[4], macaddr[5]); //将 Flagrand, macaddr[0]~macaddr[5] 写入                                                            //到字符串"urn:uuid:%ud68a-1dd2-11b2-a105-%02X%02X%02X%02X%02X%02X",并保存到_HwId里面

4、sscanf

如:

sscanf(str,"%d.%d.%d.%d",&iIp1,&iIp2,&iIp3,&iIp4);      //将str的内容按照"%d.%d.%d.%d"格式,解析出iIp1~iIp4

5、typedef

作用:用来定义类型的同义词

如: typedef double wages;   //wages 是double的同义词

typedef wages salary;   //salary 间接的是double的同义词

6、enum 枚举

如:

typedef enum

{

Video_Stream = 0x00;     //枚举成员是一个常量表达式,可以用于其他需要常量表达式的任何地方

Audeo_Stream =0x01;

SubPicture_Stream = 0x02;

Unknown_Stream = 0x03

Count_Stream = 0x04;

} StreamType;

时间: 2024-08-10 15:08:00

C语言中memset,strcpy、sprintf等函数的使用的相关文章

C语言中malloc()和calloc()c函数用法

C语言中malloc()和calloc()c函数用法 函数malloc()和calloc()都可以用来动态分配内存空间,但两者稍有区别. malloc()函数有一个参数,即要分配的内存空间的大小: void *malloc(size_t size); calloc()函数有两个参数,分别为元素的数目和每个元素的大小,这两个参数的乘积就是要分配的内存空间的大小. void *calloc(size_t numElements,size_t sizeOfElement); 如果调用成功,函数mall

C语言中memset函数详解

[转载自 http://blog.sina.com.cn/s/blog_715d0ae30100yj2d.html] 功 能: 将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值, 块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作 用 法: void *memset(void *s, char ch, unsigned n); 程序例: #include <string.h> #include <stdio.h> #include <me

C语言中的printf(),sprintf(),scanf(),sscanf()

在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望.由于sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出.这也导致sprintf 比printf 有用得多. printf 语法: #include <stdio.h> int printf( const char *format, ... ); printf()函数根据format(格式)给出的格式打印输出到STDOUT(标准输出)和其它参数中.返回

C语言中的alloca内存分配函数

在读程序源代码时,时不时地看到alloca这个函数.一开始并没有多在意,直到今天看<<APUE>>时才留意了下. 微软MSVC提供的是_alloca. 简要说明: 它的动作方式及功能跟malloc差不多,都是内存分配.但alloca是在当前调用者函数的栈帧上分配的,而不是在堆中. 优点: 当函数返回时,自动释放该内存.无需手动释放. 缺点: 增加了栈帧的长度,而某些系统不支持增加栈帧长度,于是就不能支持alloca函数. 如果分配内存时导致栈溢出,程序的行为是未知的. 参考: Wh

c语言中,既然不支持函数重载,那么printf算怎么回事?在c语言中,它不就是被重载了吗?

这个问题问的不错.其实printf不是重载,c语言不支持函数重载 这句话是对的.printf函数是通过变长参数表实现的.你可以查看一下printf的函数原型声明.printf函数的实现在不同的机器上是不同的,但提供的接口是一致的.printf函数的正确声明形式如下:int printf(const *fmt,...)其中省略号表示参数表中参数的数量和类型是可变的.它是变长参数表的固定形式.省略号只能出现在参数表的尾部.具体的话你还是上网查查吧,我对这个原型也没研究.我想既然你能问这个问题,看点资

go语言中bytes包的常用函数,Reader和Buffer的使用

bytes中常用函数的使用: package main; import ( "bytes" "fmt" "unicode" ) //bytes包中实现了大量对[]byte操作的函数和两个最主要的Reader和Buffer两个结构 func main() { str := "aBcD"; //转为小写 fmt.Println(string(bytes.ToLower([]byte(str)))); //转为大写 fmt.Prin

go语言中regexp包中的函数和方法

// regexp.go ------------------------------------------------------------ // 判断在 b 中能否找到正则表达式 pattern 所匹配的子串 // pattern:要查找的正则表达式 // b:要在其中进行查找的 []byte // matched:返回是否找到匹配项 // err:返回查找过程中遇到的任何错误 // 此函数通过调用 Regexp 的方法实现 func Match(pattern string, b []

C语言中的static 详细分析

转自: http://blog.csdn.net/keyeagle/article/details/6708077 google了近三页的关于C语言中static的内容,发现可用的信息很少,要么长篇大论不知所云要么在关键之处几个字略过,对于想挖掘底层原理的初学者来说参考性不是很大.所以,我这篇博文博采众家之长,把互联网上的资料整合归类,并亲手编写程序验证之. C语言代码是以文件为单位来组织的,在一个源程序的所有源文件中,一个外部变量(注意不是局部变量)或者函数只能在一个源程序中定义一次,如果有重

C语言中的static 具体分析

google了近三页的关于C语言中static的内容,发现可用的信息非常少,要么长篇大论不知所云要么在关键之处几个字略过,对于想挖掘底层原理的刚開始学习的人来说參考性不是非常大.所以,我这篇博文博採众家之长,把互联网上的资料整合归类,并亲手编敲代码验证之. C语言代码是以文件为单位来组织的,在一个源程序的全部源文件里,一个外部变量(注意不是局部变量)或者函数仅仅能在一个源程序中定义一次,假设有反复定义的话编译器就会报错.伴随着不同源文件变量和函数之间的相互引用以及相互独立的关系,产生了exter