C语言常用头文件总结
序号 库类别 头文件
1 字符处理 ctype.h
2 地区化 local.h
3 数学函数 math.h
4 信号处理 signal.h
5 输入输出 stdio.h
6 实用工具程序 stdlib.h
7 字符串处理 string.h
一、头文件 ctype.h
字符测试函数
是否字母和数字 isalnum
是否字母 isalpha
是否控制字符 iscntrl
是否数字 isdigit
是否可显示字符(除空格外) isgraph
是否可显示字符(包括空格) isprint
是否既不是空格,又不是字母和数字的可显示字符 ispunct
是否空格 isspace
是否大写字母 isupper
是否16进制数字(0-9,A-F)字符 isxdigit
字符大小写转换函数
转换为大写字母 toupper
转换为小写字母 tolower
地区化
本类别的函数用于处理不同国家的语言差异。
二、头文件 local.h
函数列表
函数类别 函数用途 详细说明
地区控制 地区设置 setlocale
数字格式约定查询 国家的货币、日期、时间等的格式转换 localeconv
三、头文件 math.h
函数列表
函数类别 函数用途 详细说明
错误条件处理 定义域错误(函数的输入参数值不在规定的范围内)
值域错误(函数的返回值不在规定的范围内)
三角函数 反余弦 acos
反正弦 asin
反正切 atan
反正切2 atan2
余弦 cos
正弦 sin
正切 tan
双曲函数 双曲余弦 cosh
双曲正弦 sinh
双曲正切 tanh
指数和对数 指数函数 exp
指数分解函数 frexp
乘积指数函数 fdexp
自然对数 log
以10为底的对数 log10
浮点数分解函数 modf
幂函数 幂函数 pow
平方根函数 sqrt
整数截断,绝对值和求余数函数 求下限接近整数 ceil
绝对值 fabs
求上限接近整数 floor
求余数 fmod
本分类函数用于实现在不同底函数之间直接跳转代码。 头文件 setjmp.h io.h
函数列表
函数类别 函数用途 详细说明
保存调用环境 setjmp
恢复调用环境 longjmp
四、信号处理
该分类函数用于处理那些在程序执行过程中发生例外的情况。
头文件 signal.h
函数列表
函数类别 函数用途 详细说明
指定信号处理函数 signal
发送信号 raise
可变参数处理
本类函数用于实现诸如printf,scanf等参数数量可变底函数。
头文件 stdarg.h
函数列表
函数类别 函数用途 详细说明
可变参数访问宏 可变参数开始宏 va_start
可变参数结束宏 va_end
可变参数访问宏 访问下一个可变参数宏 va_arg
五、输入输出函数
该分类用于处理包括文件、控制台等各种输入输出设备,各种函数以“流”的方式实现
头文件 stdio.h
函数列表
函数类别 函数用途 详细说明
文件操作
删除文件 remove
修改文件名称 rename
生成临时文件名称 tmpfile
得到临时文件路径 tmpnam
文件访问 关闭文件 fclose
刷新缓冲区 fflush
打开文件 fopen
将已存在的流指针和新文件连接 freopen
设置磁盘缓冲区 setbuf
设置磁盘缓冲区 setvbuf
格式化输入与输出函数 格式输出 fprintf
格式输入 fscanf
格式输出(控制台) printf
格式输入(控制台) scanf
格式输出到缓冲区 sprintf
从缓冲区中按格式输入 sscanf
格式化输出 vfprintf
格式化输出 vprintf
格式化输出 vsprintf
字符输入输出函数 输入一个字符 fgetc
字符串输入 fgets
字符输出 fputc
字符串输出 fputs
字符输入(控制台) getc
字符输入(控制台) getchar
字符串输入(控制台) gets
字符输出(控制台) putc
字符输出(控制台) putchar
字符串输出(控制台) puts
字符输出到流的头部 ungetc
直接输入输出 直接流读操作 fread
直接流写操作 fwrite
文件定位函数 得到文件位置 fgetpos
文件位置移动 fseek
文件位置设置 fsetpos
得到文件位置 ftell
文件位置复零位 remind
错误处理函数 错误清除 clearerr
文件结尾判断 feof
文件错误检测 ferror
得到错误提示字符串 perror
六、实用工具函数
头文件 stdlib.h
函数列表
函数类别 函数用途 详细说明
字符串转换函数 字符串转换为整数 atoi
字符串转换为长整数 atol
字符串转换为浮点数 strtod
字符串转换为长整数 strtol
字符串转换为无符号长整型 strtoul
伪随机序列产生函数 产生随机数 rand
设置随机函数的起动数值 srand
存储管理函数 分配存储器 calloc
释放存储器 free
存储器分配 malloc
重新分配存储器 realloc
环境通信 中止程序 abort
退出程序执行,并清除环境变量 atexit
退出程序执行 exit
读取环境参数 getenv
程序挂起,临时执行一个其他程序 system
搜索和排序工具 二分查找(数据必须已排序) bsearch
快速排序 qsort
求绝对值 abs
整数运算函数div 得到除法运算底商和余数
求长整形底绝对值 labs
求长整形除法的商和余数 ldiv
多字节字符函数 得到多字节字符的字节数 mblen
得到多字节字符的字节数 mbtowc
多字节字符转换 wctomb
多字节字符的字符串操作 将多字节串转换为整数数组 mbstowcs
将多字节串转换为字符数组 mcstowbs
七、字符串处理
本分类的函数用于对字符串进行合并、比较等操作
头文件 string.h
函数列表
函数类别 函数用途 详细说明
字符串拷贝 块拷贝(目的和源存储区不可重叠) memcpy
块拷贝(目的和源存储区可重叠) memmove
串拷贝 strcpy
按长度的串拷贝 strncpy
字符串连接函数 串连接 strcat
按长度连接字符串 strncat
串比较函数 块比较 memcmp
字符串比较 strcmp
字符串比较(用于非英文字符) strcoll
按长度对字符串比较 strncmp
字符串转换 strxfrm
字符与字符串查找 字符查找 memchr
字符查找 strchr
字符串查找 strcspn
字符串查找 strpbrk
字符串查找 strspn
字符串查找 strstr
字符串分解 strtok
杂类函数 字符串设置 memset
错误字符串映射 strerror
求字符串长度 strlen
八、日期和时间函数
本类别给出时间和日期处理函数
头文件 time.h
函数列表
函数类别 函数用途 详细说明
时间操作函数 得到处理器时间 clock
得到时间差 difftime
设置时间 mktime
得到时间 time
时间转换函数 得到以ASCII码表示的时间 asctime
得到字符串表示的时间 ctime
得到指定格式的时间 strftime
转自:http://blog.sina.com.cn/s/blog_677e6d880100qlar.html
PS:本文包含了大部分strings函数的说明,并附带举例说明。本来想自己整理一下的,发现已经有前辈整理过了,就转了过来。修改了原文一些源码的问题,主要是用char *字义字符串的问题,导致程序运行时崩溃。另外自己重写了部分测试程序,使其更能满足自己测试的需要。不当之处,还请海涵。
@函数原型: char *strdup(const char *s)
函数功能: 字符串拷贝,目的空间由该函数分配
函数返回: 指向拷贝后的字符串指针
参数说明: src-待拷贝的源字符串
所属文件: <string.h>
[cpp]view plaincopy
#include <stdio.h>
#include <string.h>
#include <alloc.h>
int main()
{
char *dup_str, *string="abcde";
dup_str=strdup(string);
printf("%s", dup_str);
free(dup_str);
return 0;
}
@函数名称: strcpy
函数原型: char* strcpy(char* str1,char* str2);
函数功能: 把str2指向的字符串拷贝到str1中去
函数返回: 返回str1,即指向str1的指针
参数说明:
所属文件: <string.h>
[cpp]view plaincopy
#include <stdio.h>
#include <string.h>
int main()
{
char string[10];
char *str1="abcdefghi";
strcpy(string,str1);
printf("the string is:%s\n",string);
return 0;
}
@函数名称: strncpy
函数原型: char *strncpy(char *dest, const char *src,intcount)
函数功能: 将字符串src中的count个字符拷贝到字符串dest中去
函数返回: 指向dest的指针
参数说明: dest-目的字符串,src-源字符串,count-拷贝的字符个数
所属文件: <string.h>
[cpp]view plaincopy
#include<stdio.h>
#include<string.h>
int main()
{
char*src = "bbbbbbbbbbbbbbbbbbbb";//20 'b's
char dest[50] ="aaaaaaaaaaaaaaaaaaaa";//20 'a's
puts(dest);
strncpy(dest, src, 10);
puts(dest);
return0;
}
输出:
[cpp]view plaincopy
/*******************************************
aaaaaaaaaaaaaaaaaaaa
bbbbbbbbbbaaaaaaaaaa
*******************************************/
注意:strncpy只复制指定长度的字符,不会自动在末尾加'\0'。若指定长度超过源字符串长度,不够的部分补‘\0’,
@函数名称: strcat
函数原型: char* strcat(char * str1,char * str2);
函数功能: 把字符串str2接到str1后面,str1最后的'\0'被取消
函数返回: str1
参数说明:
所属文件: <string.h>
[cpp]view plaincopy
#include <stdio.h>
#include <string.h>
int main()
{
char buffer[80];
strcpy(buffer,"Hello ");
strcat(buffer,"world");
printf("%s\n",buffer);
return 0;
}
@函数名称: strncat
函数原型: char *strncat(char *dest, const char *src, size_t maxlen)
函数功能: 将字符串src中前maxlen个字符连接到dest中
函数返回:
参数说明:
所属文件: <string.h>
[cpp]view plaincopy
#include <stdio.h>
#include <string.h>
char buffer[80];
int main()
{
strcpy(buffer,"Hello ");
strncat(buffer,"world",8);
printf("%s\n",buffer);
strncat(buffer,"*************",4);
printf("%s\n",buffer);
return 0;
}
注意:与strncpy不同的是,strncat会自动在末尾加‘\0’,若指定长度超过源字符串长度,则只复制源字符串长度即停止
@函数名称: strcmp
函数原型: int strcmp(char * str1,char * str2);
函数功能: 比较两个字符串str1,str2.
函数返回: str1<str2,返回负数;str1=str2,返回 0;str1>str2,返回正数.
参数说明:
所属文件: <string.h>
[cpp]view plaincopy
#include <string.h>
#include <stdio.h>
int main()
{
char *buf1="aaa", *buf2="bbb",*buf3="ccc";
int ptr;
ptr=strcmp(buf2, buf1);
if(ptr>0)
printf("buffer 2 is greater thanbuffer 1\n");
else
printf("buffer 2 is less thanbuffer 1\n");
ptr=strcmp(buf2, buf3);
if(ptr>0)
printf("buffer 2 is greater thanbuffer 3\n");
else
printf("buffer 2 is less thanbuffer 3\n");
return 0;
}
@函数名称: strncmp
函数原型: int strncmp(char *str1,char *str2,int count)
函数功能: 对str1和str2中的前count个字符按字典顺序比较
函数返回: 小于0:str1<str2,等于0:str1=str2,大于0:str1>str2
参数说明: str1,str2-待比较的字符串,count-比较的长度
所属文件: <string.h>
[cpp]view plaincopy
#include<string.h>
#include<stdio.h>
int main()
{
char str1[] ="aabbc";//
char str2[] = "abbcd";//
//为使测试程序更简练,此处假定了strncmp只返回-1,0,1三个数
char res_info[] = {'<','=','>'};
int res;
//前1个字符比较
res = strncmp(str1, str2, 1);
printf("1:str1%c str2\n", res_info[res+1]);
//前3个字符比较
res = strncmp(str1, str2, 3);
printf("3:str1%c str2\n", res_info[res+1]);
}
输出:
[cpp]view plaincopy
/****************************************
1:str1= str2
3:str1< str2
*****************************************/
@函数名称: strpbrk
函数原型: char *strpbrk(const char *s1, const char *s2)
函数功能: 得到s1中第一个“同时也出现在s2中”字符的位置指针
函数返回: 位置指针
参数说明:
所属文件: <string.h>
[cpp]view plaincopy
#include<stdio.h>
#include<string.h>
int main()
{
char *p="Find all vowels";
p=strpbrk(p+1,"aeiouAEIOU");
while(p)
{
printf("%s\n",p);
p=strpbrk(p+1,"aeiouAEIOU");
}
return 0;
}
输出:
[cpp]view plaincopy
/**************************************
ind all vowels
all vowels
owels
els
**************************************/
@函数名称: strcspn
函数原型: int strcspn(const char *s1, const char *s2)
函数功能: 统计s1中从头开始直到第一个“来自s2中的字符”出现的长度
函数返回: 长度
参数说明:
所属文件: <string.h>
[cpp]view plaincopy
#include<stdio.h>
#include<string.h>
int main()
{
printf("%d\n",strcspn("abcbcadef","cba"));
printf("%d\n",strcspn("xxxbcadef","cba"));
printf("%d\n",strcspn("123456789","cba"));
return 0;
}
输出:
[cpp]view plaincopy
/************************
0
3
9
************************/
@函数名称: strspn
函数原型: int strspn(const char *s1, const char *s2)
函数功能: 统计s1中从头开始直到第一个“不来自s2中的字符”出现的长度
函数返回: 位置指针
参数说明:
所属文件: <string.h>
[html]view plaincopy
#include<stdio.h>
#include<string.h>
#include<alloc.h>
int main()
{
printf("%d\n",strspn("abcbcadef","cba"));
printf("%d\n",strspn("xxxbcadef","cba"));
printf("%d\n",strspn("123456789","cba"));
return 0;
}
输出:
[cpp]view plaincopy
/************************
6
0
0
************************/
@函数名称: strchr
函数原型: char* strchr(char* str,char ch);
函数功能: 找出str指向的字符串中第一次出现字符ch的位置
函数返回: 返回指向该位置的指针,如找不到,则返回空指针
参数说明: str-待搜索的字符串,ch-查找的字符
所属文件: <string.h>
[cpp]view plaincopy
#include<string.h>
#include<stdio.h>
int main()
{
char *str = "This is a string!";
char ch;
char *p;
while(1)
{
printf("Please input a char:");
ch = getchar();
p = strchr(str, ch);
if(p)
printf("%c is the %d character of\"%s\"\n",ch, (int)(p-str+1),str);
else
printf("Not found!\n");
printf("Press ESC to quit!\n\n");
if(27 == getch())
break;
fflush(stdin);
}
return 0;
}
运行结果:
[cpp]view plaincopy
/********************************************
Please input achar:i
i is the 3character of "This is a string!"
Press ESC to quit!
Please input achar:l
Not found!
Press ESC to quit!
Please input achar:s
s is the 4character of "This is a string!"
Press ESC to quit!
**********************************************/
@函数名称: strrchr
函数原型: char *strrchr(const char *s, int c)
函数功能: 得到字符串s中最后一个含有c字符的位置指针
函数返回: 位置指针
参数说明:
所属文件: <string.h>
[cpp]view plaincopy
#include<string.h>
#include<stdio.h>
int main()
{
charstring[15];
char*ptr,c='r';
strcpy(string,"This is a string");
ptr=strrchr(string,c);
if (ptr)
printf("The character %c is at position:%d",c,ptr-string);
else
printf("The character was not found");
return 0;
}
@函数名称: strstr
函数原型: char* strstr(char* str1,char* str2);
函数功能: 找出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符)
函数返回: 返回该位置的指针,如找不到,返回空指针
参数说明:
所属文件: <string.h>
[cpp]view plaincopy
#include<stdio.h>
#include<string.h>
int main()
{
char*str1="Open Watcom C/C++",*str2="Watcom",*ptr;
ptr=strstr(str1,str2);
printf("The substring is:%s\n",ptr);
return 0;
}
输出:
The substringis:Watcom C/C++
@函数名称: strrev
函数原型: char *strrev(char *s)
函数功能: 将字符串中的所有字符颠倒次序排列
函数返回: 指向s的指针
参数说明:
所属文件: <string.h>
[cpp]view plaincopy
#include<string.h>
#include<stdio.h>
int main()
{
char forward[]="string"; //原文中定义为char*是不对的,指向代码段的指针内容是不可变的
printf("Before strrev():%s",forward);
strrev(forward);
printf("Afterstrrev(): %s",forward);
return 0;
}
输出:
[cpp]view plaincopy
/************************************
Beforestrrev():string
After strrev():gnirts
************************************/
@函数名称: strnset
函数原型: char *strnset(char *s, int ch, size_t n)
函数功能: 将字符串s中前n个字符设置为ch的值
函数返回: 指向s的指针
参数说明:
所属文件: <string.h>
[cpp]view plaincopy
#include<stdio.h>
#include<string.h>
int main()
{
charstring[]="aaaaaaaaaaaaaaaaaaaaaaa";
char letter='x';
printf("string before strnset:%s\n",string);
strnset(string,letter,10);
printf("string after strnset: %s\n",string);
return 0;
}
输出:
[cpp]view plaincopy
/*************************************************
string beforestrnset: aaaaaaaaaaaaaaaaaaaaaaa
string afterstrnset: xxxxxxxxxxaaaaaaaaaaaaa
*************************************************/
@函数名称: strset
函数原型: char *strset(char *s, int ch)
函数功能: 将字符串s中所有字符设置为ch的值
函数返回: 指向s的指针
参数说明:
所属文件: <string.h>
[cpp]view plaincopy
#include<stdio.h>
#include<string.h>
int main()
{
charstring[10]="123456789";
charsymbol='c';
printf("Before strset(): %s", string);
strset(string, symbol);
printf("After strset(): %s", string);
return 0;
}
@函数名称: strtok
函数原型: char *strtok(char *s1, const char *s2)
函数功能: 分解s1字符串为用特定分隔符分隔的多个字符串(一般用于将英文句分解为单词)
函数返回: 字符串s1中首次出现s2中的字符前的子字符串指针
参数说明: s2一般设置为s1中的分隔字符
规定进行子调用时(即分割s1的第二、三及后续子串)第一参数必须是NULL
在每一次匹配成功后,将s1中分割出的子串位置替换为NULL(摘下链中第一个环),因此s1被破坏了
函数会记忆指针位置以供下一次调用
所属文件: <string.h>
[cpp]view plaincopy
#include<string.h>
#include<stdio.h>
int main()
{
char *p;
char*buffer;
char*delims={ " .," };
buffer=strdup("Find words, all of them.");
printf("%s\n",buffer);
p=strtok(buffer,delims);
while(p!=NULL){
printf("word: %s\n",p);
p=strtok(NULL,delims);
}
printf("%s\n",buffer);
return 0;
}//根据测试,可以随时给strtok的第一个参数输入一个新的字符串,开始新字符串的分隔
PS:根据测试,可以随时给strtok的第一个参数输入一个新的字符串,开始新字符串的分隔
@函数名称: strupr
函数原型: char *strupr(char *s)
函数功能: 将字符串s中的字符变为大写
函数返回:
参数说明:
所属文件: <string.h>
[cpp]view plaincopy
#include <stdio.h>
#include <string.h>
int main()
{
char string[]="abcdefghijklmnopqrstuvwxyz",*ptr; //会影响原字符串的内存,用char[]来声明
ptr=strupr(string);
printf("%s",ptr);
return 0;
}
@函数名称: strlwr
函数原型: char *strlwr(char *s)
函数功能: 将字符串中的字符变为小写字符
函数返回: 指向s的指针
参数说明:
所属文件: <string.h>
[cpp]view plaincopy
#include<string.h>
int main()
{
char str[]="HOW TO SAY?";
printf("%s",strlwr(str));
return 0;
}
@函数名称: strerror
函数原型: char *strerror(int errnum)
函数功能: 得到错误信息的内容信息
函数返回: 错误提示信息字符串指针
参数说明: errnum-错误编号
所属文件: <string.h>
[cpp]view plaincopy
#include <stdio.h>
#include <errno.h>
int main()
{
char *buffer;
buffer=strerror(errno);
printf("Error: %s",buffer);
return 0;
}
@函数名称: memcpy
函数原型: void *memcpy(void *dest, const void *src, size_t n)
函数功能: 字符串拷贝
函数返回: 指向dest的指针
参数说明: src-源字符串,n-拷贝的最大长度
所属文件: <string.h>,<mem.h>
[cpp]view plaincopy
#include <stdio.h>
#include <string.h>
int main()
{
char src[]="******************************";
char dest[]="abcdefghijlkmnopqrstuvwxyz0123456709";
char *ptr;
printf("destination before memcpy:%s\n",dest);
ptr=memcpy(dest,src,strlen(src));
if (ptr)
printf("destination after memcpy:%s\n",dest);
else
printf("memcpy failed");
return 0;
}
输出:
[cpp]view plaincopy
/*************************************************************
destination before memcpy:abcdefghijlkmnopqrstuvwxyz0123456709
destination after memcpy:******************************456709
**************************************************************/
@函数名称: memccpy
函数原型: void *memccpy(void *dest, const void *src, int c, size_t n)
函数功能: 字符串拷贝,到指定长度或遇到指定字符时停止拷贝
函数返回:
参数说明: src-源字符串指针,c-中止拷贝检查字符,n-长度,dest-拷贝底目的字符串指针
所属文件: <string.h>,<mem.h>
[cpp]view plaincopy
#include <string.h>
#include <stdio.h>
int main()
{
char *src="This is the source string";
char dest[50];
char *ptr;
ptr=memccpy(dest,src,'c',strlen(src));
if (ptr)
{
*ptr='\0';
printf("The character wasfound:%s",dest);
}
else
printf("The character wasn'tfound");
return 0;
}
输出:
[cpp]view plaincopy
/*****************************************
The character was found:This is the sourc
*****************************************/
PS:指定字符被复制到dest中,memccpy返回了dest中指定字符的下一处的地址,返回NULL表示未遇到指定字符
@函数名称: memchr
函数原型: void *memchr(const void *s, int c, size_t n)
函数功能: 在字符串中第开始n个字符中寻找某个字符c的位置
函数返回: 返回c的位置指针,返回NULL时表示未找到
参数说明: s-要搜索的字符串,c-要寻找的字符,n-指定长度
所属文件: <string.h>,<mem.h>
[cpp]view plaincopy
#include <string.h>
#include <stdio.h>
int main()
{
char str[17];
char *ptr;
strcpy(str,"This is a string");
ptr=memchr(str,'r',strlen(str));
if (ptr)
printf("The character 'r' is at position:%d",ptr-str);
else
printf("The character was not found");
return 0;
}
@函数名称: memcmp
函数原型: int memcmp(const void *s1, const void *s2,size_t n)
函数功能: 按字典顺序比较两个串s1和s2的前n个字节
函数返回: <0,=0,>0分别表示s1<,=,>s2
参数说明: s1,s2-要比较的字符串,n-比较的长度
所属文件: <string.h>,<mem.h>
[cpp]view plaincopy
#include <stdio.h>
#include <string.h>
int main()
{
char *buf1="ABCDE123";
char *buf2="abcde456";
int stat;
stat=memcmp(buf1,buf2,5);
printf("The strings to position 5 are");
if(stat) printf("not ");
printf("the same\n");
return 0;
}
@函数名称: memicmp
函数原型: int memicmp(const void *s1, const void *s2, size_t n)
函数功能: 按字典顺序、不考虑字母大小写对字符串s1,s2前n个字符比较
函数返回: <0,=0,>0分别表示s1<,=,>s2
参数说明: s1,s2-要比较的字符串,n-比较的长度
所属文件: <string.h>,<mem.h>
[cpp]view plaincopy
#include <stdio.h>
#include <string.h>
int main()
{
char *buf1="ABCDE123";
char *buf2="abcde456";
int stat;
stat=memicmp(buf1,buf2,5);
printf("The strings to position 5 are");
if(stat) printf("not");
printf("the same");
return 0;
}
输出:
[cpp]view plaincopy
/**************************************
The strings to position 5 are the same
***************************************/
@函数名称: memmove
函数原型: void *memmove(void *dest, const void *src, size_t n)
函数功能: 字符串拷贝
函数返回: 指向dest的指针
参数说明: src-源字符串,n-拷贝的最大长度
所属文件: <string.h>,<mem.h>
[cpp]view plaincopy
#include <string.h>
#include <stdio.h>
int main()
{
chardest[40]="abcdefghijklmnopqrstuvwxyz0123456789";
printf("destination prior tomemmove:%s\n",dest);
memmove(dest+1,dest,35);
printf("destination aftermemmove:%s",dest);
return 0;
}
PS:与memcpy不同的是,memmove可以处理目的字符串与源字符串地址空间出现重叠的情况,可保证待复制的内容不被破坏。
@函数名称: memset
函数原型: void *memset(void *s, int c, size_t n)
函数功能: 字符串中的n个字节内容设置为c
函数返回:
参数说明: s-要设置的字符串,c-设置的内容,n-长度
所属文件: <string.h>,<mem.h>
[cpp]view plaincopy
#include <string.h>
#include <stdio.h>
#include <mem.h>
int main()
{
charbuffer[]="Hello world";
printf("Buffer before memset:%s/n",buffer);
memset(buffer,'*',strlen(buffer)-1);
printf("Buffer after memset:%s",buffer);
return 0;
}
网友评论