C语言知识回顾和补充.pptx

上传人:wuy****n92 文档编号:70737690 上传时间:2023-01-27 格式:PPTX 页数:60 大小:319.15KB
返回 下载 相关 举报
C语言知识回顾和补充.pptx_第1页
第1页 / 共60页
C语言知识回顾和补充.pptx_第2页
第2页 / 共60页
点击查看更多>>
资源描述

《C语言知识回顾和补充.pptx》由会员分享,可在线阅读,更多相关《C语言知识回顾和补充.pptx(60页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、C语言知识巩固和补充语言知识巩固和补充l输入输出l位运算l函数指针l指针和动态内存分配l命令行参数lC语言标准库函数C语言的输入输出语句#include scanf()将输入读入变量 printf()将变量内容输出scanf()语句(函数)int scanf(const char*,.);int scanf(const char*,.);参数可变的函数参数可变的函数第一个参数是格式字符串,后面的参数是变量的地址,第一个参数是格式字符串,后面的参数是变量的地址,函数作用是按照第一个参数指定的格式,将数据读入函数作用是按照第一个参数指定的格式,将数据读入后面的变量后面的变量参数可变的函数的参考阅读

2、参数可变的函数的参考阅读(不要求掌握)不要求掌握)scanf 返回值 0 成功读入的数据项个数;0 没有项被赋值;EOF 第一个尝试输入的字符是EOF(结束)(对(对POJ上某些题,返回值为上某些题,返回值为EOF可以用来判可以用来判断输入数据已经全部读完)断输入数据已经全部读完)printf()语句(函数)int printf(const char*,.);int printf(const char*,.);参数可变的函数参数可变的函数第一个参数是格式字符串,后面的参数是待输出的变第一个参数是格式字符串,后面的参数是待输出的变量,函数作用是按照第一个参数指定的格式,将后面量,函数作用是按照第

3、一个参数指定的格式,将后面的变量在屏幕上输出的变量在屏幕上输出 返回值返回值:成功打印的字符数;成功打印的字符数;返回负值为出错返回负值为出错%d%d 读入或输出读入或输出intint变量变量%c%c 读入或输出读入或输出charchar变量变量%f%f 读入或输出读入或输出floatfloat变量变量%s%s 读入或输出读入或输出char*char*变量变量%lf%lf 读入或输出读入或输出double double 变量变量%e%e 以科学计数法格式输出数值以科学计数法格式输出数值%x%x 以十六进制读入或输出以十六进制读入或输出 int int 变量变量%I64d%I64d 读入或输出读

4、入或输出 _int64 _int64 变量变量(64(64位整数)位整数)%p%p 输出指针地址值输出指针地址值%.5lf%.5lf 输出浮点数,精确到小数点后输出浮点数,精确到小数点后5 5位位格式字符串里的格式控制符号:#include int main()int a;char b;char c20;double d=0;float e=0;int n=scanf(%d%c%s%lf%f,&a,&b,c,&d,&e);printf(%d%c%s%lf%e%f%d,a,b,c,d,e,e,n);return 0;int n=scanf(%d%c%s%lf%f,&a,&b,c,&d,&e);p

5、rintf(%d%c%s%lf%e%f%d,a,b,c,d,e,e,n);input:123a teststring 8.9 9.2output:123 a teststring 8.900000 9.200000e+000 9.200000 5input:123ateststring 8.9 9.2output:input:123 a teststring 8.9 9.2output:123 a teststring 8.900000 9.200000e+000 9.200000 5123 a 0.000000 0.000000e+000 0.000000 3#include int mai

6、n()int a,b;char c;char s20;_int64 n=9876543210001111;/VC+6.0scanf(%d%c,%s%x%I64d,&a,&c,s,&b,&n);printf(%d%x%u%s%p%x%d%I64d,a,a,a,s,s,b,b,n);return 0;input:output:#include int main()int a,b;char c;char s20;long long n=9876543210001111LL;/Dev C+scanf(%d%c,%s%x%I64d,&a,&c,s,&b,&n);printf(%d%x%u%s%p%x%d

7、%I64d,a,a,a,s,s,b,b,n);return 0;input:output:#include#include int main()int main()char*s;char*s;scanf(%s,s);scanf(%s,s);return 0;return 0;错在何处?错在何处?常见错误:错在错在 s s 不知道指向何处,往其指向的地方写入数据,不知道指向何处,往其指向的地方写入数据,不安全不安全char*gets(char*s);char*gets(char*s);从标准输入读取一行到字符串从标准输入读取一行到字符串s s如果成功,返回值就是如果成功,返回值就是 s s 地址

8、地址如果失败,返回值是如果失败,返回值是 NULLNULL可以根据返回值是可以根据返回值是 NULLNULL判定输入数据已经读完判定输入数据已经读完调用时要确保调用时要确保 s s 指向的缓冲区足够大,否则可能发生指向的缓冲区足够大,否则可能发生内存访问错误内存访问错误读取一行:#include#include int main()int main()char s200;char s200;char*p =gets(s);char*p =gets(s);printf(%s:%s,s,p);printf(%s:%s,s,p);return 0;return 0;input:input:Welco

9、me to Beijing!Welcome to Beijing!读取一行:output:output:Welcome to Beijing!:Welcome to Beijing!Welcome to Beijing!:Welcome to Beijing!int sscanf(const char*buffer,const char*int sscanf(const char*buffer,const char*format,address,.);format,address,.);和和scanfscanf的区别在于,它是从的区别在于,它是从bufferbuffer里读取数据里读取数据in

10、t sprintf(char*buffer,const char*format,int sprintf(char*buffer,const char*format,argument,.);argument,.);和和printfprintf的区别在于,它是往的区别在于,它是往bufferbuffer里输出数据里输出数据sscanf 函数和 sprintf函数#include int main()int a,b;char c;char s20;char szDest200;_int64 n=9876543210001111;sscanf(szSrc,%d%c,%s%x%I64d,&a,&c,s,

11、&b,&n);sprintf(szDest,%d%x%u%s%p%x%d%I64d,a,a,a,s,s,b,b,n);printf(%s,szDest);return 0;output:位运算 有时我们需要对某个整数类型变量中的某一位(bit)进行操作,比如,判断某一位是否为1,或只改变其中某一位,而保持其他位都不变。C/C+语言提供了“位运算”的操作,能够做到类似的操作。C/C+语言提供了六种位运算符来进行位运算操作:&按位与|按位或 按位异或 取反 右移数在计算机内的表示数在计算机内的表示l一般计算机中用16位/32/64位来表示整数,位数越多,能表示数的范围就越大。l整数有正负之分,为此

12、,我们可以用一个二进位作为符号位,一般总是最高位,当符号位为0是表示正数,符号位为1时表示负数。例如,当我们用16位来表示一个整数时,有0000 0000 0010 1011=+431000 0000 0010 1011=-43l上述表示法,称为整数的原码原码表示法。整数也可采用反反码码表示法,对于负整数来说,符号位作为1,但绝对值部分正好与原码相反(即0变为1,1变为0)。因此:(-43)原=1000 0000 0010 1011(-43)反=1111 1111 1101 0100而实际上,整数在机器内大多用补码补码表示,对负整数而言,符号位仍为1,但绝对值部分却是反码的最低位加1得到的结果

13、,因此(-43)补=1111 1111 1101 0101注意,对正整数而言,其原码、反码、补码均相同。数在计算机内的表示数在计算机内的表示按位与 按位与运算符“&”是双目运算符。其功能是将参与运算的两操作数各对应的二进制位进行与操作,只有对应的两个二进位均为1时,结果的对应二进制位才为1,否则为0。例如:表达式“21&18”的计算结果是16(即二进制数10000),因为:21 用二进制表示就是:0000 0000 0000 0000 0000 0000 0001 0101 18 用二进制表示就是:0000 0000 0000 0000 0000 0000 0001 0010二者按位与所得结果

14、是:0000 0000 0000 0000 0000 0000 0001 0000 按位与按位与运算通常用来将某变量中的某些位清0或保留某些位不变。例如,如果需要将int型变量n的低8位全置成0,而其余位不变,则可以执行:n=n&0 xffffff00;也可以写成:n&=0 xffffff00;如果n是short类型的,则只需执行:n&=0 xff00;如何判断一个int型变量n的第7位(从右往左,从0开始数)是否是1?只需看表达式“n&0 x80”的值是否等于0 x80即可。按位与 按位或运算符|是双目运算符。其功能是将参与运算的两操作数各对应的二进制位进行或操作,只有对应的两个二进位都为0

15、时,结果的对应二进制位才是0,否则为1。例如:表达式“21|18”的值是2321:0000 0000 0000 0000 0000 0000 0001 0101 18:0000 0000 0000 0000 0000 0000 0001 001021|18:0000 0000 0000 0000 0000 0000 0001 0111 按位或运算通常用来将某变量中的某些位置1或保留某些位不变。例如,如果需要将int型变量n的低8位全置成1,而其余位不变,则可以执行:按位或n|=0 xff;按位异或运算符是双目运算符。其功能是将参与运算的两操作数各对应的二进制位进行异或操作,即只有对应的两个二进

16、位不相同时,结果的对应二进制位才是1,否则为0。例如:表达式“21 18”的值是7(即二进制数111)。21:0000 0000 0000 0000 0000 0000 0001 0101 18:0000 0000 0000 0000 0000 0000 0001 00102118:0000 0000 0000 0000 0000 0000 0000 0111 异或运算的特点是:如果 ab=c,那么就有 cb=a以及ca=b。此规律可以用来进行最简单的加密和解密。按位异或 按位非运算符“”是单目运算符。其功能是将操作数中的二进制位0变成1,1变成0。例如,表达式“21”的值是无符号整型数 0

17、xffffffea21:0000 0000 0000 0000 0000 0000 0001 0101 21:1111 1111 1111 1111 1111 1111 1110 1010而下面的语句:printf(%d,%u,%x,21,21,21);输出结果就是:-22,4294967274,ffffffea按位非 对于int或long或short或char类型的变量,最高位代表符号位,为0则说明是正数;为1则说明是负数,其绝对值等于整个变量取反再加1。对于unsigned int,unsigned long,unsigned short,unsigned char,最高位为1也代表正数。

18、因此,各种类型变量表示范围如下:char-128(0 x80)到127(0 x7f)0 xff代表-1short-32768(0 x8000)到32767(0 x7fff)0 xffff代表-1int-2147483648(0 x80000000)到 21474836470 xffffffff 代表-1unsigned char 0 到 255(0 xff)unsigned short 0到65535(0 xffff)unsigned int 0 到 4294967295(0 xffffffff)负整数的表示方式#include using namespace std;int main()in

19、t n=0 xffffffff;printf(%d,%un,n,n);char c=0 xff;unsigned char uc=0 xff;printf(%d,%dn,c,uc);n=c;int m=uc;printf(%d,%dn,n,m);printf(%d,%d,c+1,uc+1);return 0;输出:-1,4294967295-1,255-1,2550,256 左移运算符“”是双目运算符。其计算结果是将左操作数的各二进位全部左移若干位后得到的值,右操作数指明了要左移的位数。左移时,高位丢弃,低位补0。左移运算符不会改变左操作数的值。左移运算符例如,常数9有32位,其二进制表示是:

20、0000 0000 0000 0000 0000 0000 0000 1001因此,表达式“94”的值,就是将上面的二进制数左移4位,得:0000 0000 0000 0000 0000 0000 1001 0000即为十进制的144。实际上,左移1位,就等于是乘以2,左移n位,就等于是乘以2n。而左移操作比乘法操作快得多。左移运算符#include main()int n1=15;short n2=15;unsigned short n3=15;unsigned char c=15;n1=15;n2=15;n3=15;c=6;printf(n1=%x,n2=%d,n3=%d,c=%x,c4=

21、%d,n1,n2,n3,c,c 4);上面程序的输出结果是:n1=78000,n2=-32768,n3=32768,c=c0,c4=3072n1:0000 0000 0000 0000 0000 0000 0000 1111 n2:0000 0000 0000 1111n3:0000 0000 0000 1111c:0000 1111n1=15:(变成78000)0000 0000 0000 0111 1000 0000 0000 0000 n2=15:,(变成-32768)1000 0000 0000 0000 n3=15:(变成 32768)1000 0000 0000 0000c=6;(

22、变成 c0)1100 0000 c 4 这个表达式是先将 c 转换成整型0000 0000 0000 0000 0000 0000 1100 0000 然后再左移。c”是双目运算符。其计算结果是把“”的左操作数的各二进位全部右移若干位后得到的值,要移动的位数就是“”的右操作数。移出最右边的位就被丢弃。对于有符号数,如long,int,short,char类型变量,在右移时,符号位(即最高位)将一起移动,并且大多数C/C+编译器规定,如果原符号位为1,则右移时高位就补充1,原符号位为0,则右移时高位就补充0。右移运算符 对于无符号数,如unsigned long,unsigned int,uns

23、igned short,unsigned char类型的变量,则右移时,高位总是补0。右移运算符不会改变左操作数的值。实际上,右移n位,就相当于左操作数除以2n,并且将结果往小里取整。-25 4=-2-2 4=-1 18 4=1右移运算符#include main()int n1=15;short n2=-15;unsigned short n3=0 xffe0;unsigned char c=15;n1=n12;n2=3;n3=4;c=3;printf(n1=%d,n2=%d,n3=%x,c=%x,n1,n2,n3,c);上面的程序输出结果是:n1=3,n2=-2,n3=ffe,c=1n1:

24、0000 0000 0000 0000 0000 0000 0000 1111 n2:1111 1111 1111 0001n3:1111 1111 1110 0000c:0000 1111n1=2:变成3 0000 0000 0000 0000 0000 0000 0000 0011 n2=3:变成-2 1111 1111 1111 1110 n3=4:变成 ffe 0000 1111 1111 1110c=3;变成10000 0001思考题:思考题:有两个int型的变量a和n(0=n n)&1或:(a&(1 n 函数指针函数指针 程序运行期间,每个函数都会占用一段连续的内存空间。而函数名就

25、是该函数所占内存区域的起始地址(也称“入口地址”)。我们可以将函数的入口地址赋给一个指针变量,使该指针变量指向该函数。然后通过指针变量就可以调用这个函数。这种指向函数的指针变量称为“函数指针”。函数指针函数指针 函数指针定义的一般形式为:类型名(*指针变量名)(参数类型1,参数类型2,);其中“类型名”表示被指函数的返回值的类型。“(参数类型1,参数类型2,)”中则依次列出了被指函数的所有参数的类型。例如:int(*pf)(int,char);表示pf是一个函数指针,它所指向的函数,返回值类型应是int,该函数应有两个参数,第一个是int 类型,第二个是char类型。函数指针函数指针 可以用一

26、个原型匹配的函数的名字给一个函数指针赋值。要通过函数指针调用它所指向的函数,写法为:函数指针名(实参表);typedef void(*PFUN1)(int);PFUN1 pf;下面的程序说明了函数指针的用法#include void PrintMin(int a,int b)if(ab)printf(%d,a);elseprintf(%d,b);int main()void(*pf)(int,int);int x=4,y=5;pf=PrintMin;pf(x,y);return 0;上面的程序输出结果是:4函数指针应用:快速排序库函数qsortvoid qsort(void*base,int

27、nelem,unsigned int width,int(*pfCompare)(const void*,const void*);base是待排序数组的起始地址,nelem是待排序数组的元素个数,width是待排序数组的每个元素的大小(以字节为单位)pfCompare是一个函数指针,它指向一个“比较函数”。该比较函数应是返回值为int,有两个参数为const void*的函数int 函数名(const void*elem1,const void*elem2);快速排序库函数qsort 排序就是一个不断比较并交换位置的过程。qsort函数在执行期间,会通过pfCompare指针调用“比较函数”

28、,调用时将要比较的两个元素的地址传给“比较函数”,然后根据“比较函数”返回值判断两个元素哪个更应该排在前面。这个“比较函数”不是C/C+的库函数,而是由使用qsort的程序员编写的。在调用qsort时,将“比较函数”的名字作为实参传递给pfCompare。程序员当然清楚该按什么规则决定哪个元素应该在前,哪个元素应该在后,这个规则就体现在“比较函数”中。qsort函数的用法规定,“比较函数”的原型应是:int 函数名(const void*elem1,const void*elem2);该函数的两个参数,elem1和elem2,指向待比较的两个元素。也就是说,*elem1和*elem2就是待比较

29、的两个元素。该函数必须具有以下行为:1)如果*elem1应该排在*elem2前面,则函数返回值是负整数(任何负整数都行)。2)如果*elem1和*elem2哪个排在前面都行,那么函数返回03)如果*elem1应该排在*elem2后面,则函数返回值是正整数(任何正整数都行)。快速排序库函数qsort#include#include int MyCompare(const void*elem1,const void*elem2)unsigned int*p1,*p2;p1=(unsigned int*)elem1;p2=(unsigned int*)elem2;return (*p1%10)-(*

30、p2%10);下面的程序,功能是调用qsort库函数,将一个unsigned int数组按照个位数从小到大进行排序。比如 8,23,15三个数,按个位数从小到大排序,就应该是 23,15,8#define NUM 5int main()unsigned int anNUM=8,123,11,10,4;qsort(an,NUM,sizeof(unsigned int),MyCompare);for(int i=0;i NUM;i+)printf(%d,ani);return 0;上面程序的输出结果是:10 11 123 4 8 思考题思考题:如果要将an数组从大到小排序,那么MyCompare函

31、数该如何编写?动态内存分配 在C+中,通过“new”运算符来实现动态内存分配。new 运算符的第一种用法如下:P=new T;T是任意类型名,P是类型为T*的指针。这样的语句,会动态分配出一片大小为 sizeof(T)字节的内存空间,并且将该内存空间的起始地址赋值给P。比如:int*pn;int*pn;pn=new int;/(1)pn=new int;/(1)*pn=5;*pn=5;语句(1)即动态分配了一片4个字节大小的内存空间,而pn 会指向这片空间,通过pn,可以读写该内存空间。动态内存分配 new 运算符还有第二种用法,可以用来动态分配一个任意大小的数组:P=new TN;T是任意类

32、型名,P是类型为T*的指针,N代表“元素个数”,它可以是任何值为正整数的表达式,表达式里可以包含变量、函数调用。这样的语句动态分配出 N sizeof(T)个字节的内存空间,这片空间的起始地址被赋值给P。例如:int*pn;int*pn;int i=5;int i=5;pn=new inti*20;pn=new inti*20;pn0=20;pn0=20;pn100=30;pn100=30;/编译没问题。运行时导致数组越界。动态内存分配 如果要求分配的空间太大,操作系统找不到足够的内存来满足,那么动态内存分配就会失败。保险做法是在进行较大的动态内存分配时,要判断一下分配是否成功。判断的方法是:

33、如果new表达式返回值是NULL,则分配失败,否则分配成功。例如:int*pn=new int200000;int*pn=new int200000;if(pn=NULL)if(pn=NULL)printf(“printf(“内存分配失败内存分配失败”););elseelseprintf(“printf(“内存分配成功内存分配成功”););动态内存分配 程序从操作系统动态分配所得的内存空间,使用完后应该释放,交还操作系统,以便操作系统将这片内存空间分配给其他程序使用。C+提供“delete”运算符,用以释放动态分配的内存空间。delete运算符的基本用法是:delete 指针;该指针必须是指向

34、动态分配的内存空间的,否则运行时很可能会出错。例如:int*p=new int;int*p=new int;*p=5;*p=5;delete p;delete p;delete p;delete p;/本句会导致程序异常动态内存分配如果是用new动态分配了一个数组,那么,释放该数组的时候,应以如下形式使用 delete 运算符:delete 指针;例如:int*p=new int20;int*p=new int20;p0=1;p0=1;delete p;delete p;动态内存分配 请牢记,用 new 运算符动态分配的内存空间,一定要用delete 运算符予以释放。否则即便程序运行结束,这部

35、分内存空间仍然有可能不会被操作系统收回(取决于操作系统如何设计),从而成为被白白浪费掉的内存垃圾。这种现象也称为“内存泄漏”。命令行参数 将用户在CMD窗口输入可执行文件名的方式启动程序时,跟在可执行文件名后面的那些字符串,称为“命令行参数”。命令行参数可以有多个,以空格分隔。比如,在CMD窗口敲:copy file1.txt file2.txt“copy”,“file1.txt”,“file2.txt”就是命令行参数 如何在程序中获得命令行参数呢?命令行参数int main(int argc,char*argv)参数argc就代表启动程序时,命令行参数的个数。C/C+语言规定,可执行程序程序

36、本身的文件名,也算一个命令行参数,因此,argc的值至少是1。argv是一个数组,其中的每个元素都是一个char*类型的指针,该指针指向一个字符串,这个字符串里就存放着命令行参数。例如,argv0指向的字符串就是第一个命令行参数,即可执行程序的文件名,argv1指向第二个命令行参数,argv2指向第三个命令行参数。请看例子程序:#include int main(int argc,char*argv)for(int i=0;i argc;i+)printf(%sn,argvi);return 0;将上面的程序编译成sample.exe,然后在控制台窗口敲:sample para1 para2

37、s.txt 5“hello world”输出结果就是:samplepara1para2s.txt5hello worldC语言标准库函数.数学函数数学函数数学库函数声明在math.h中,主要有:abs(x)求整型数x的绝对值cos(x)x(弧度)的余弦fabs(x)求浮点数x的绝对值 ceil(x)求不小于x的最小整数floor(x)求不大于x的最大整数log(x)求x的自然对数log10(x)求x的对数(底为10)pow(x,y)求x的y次方sin(x)求x(弧度)的正弦sqrt(x)求x的平方根.字符处理函数字符处理函数在ctype.h中声明,主要有:int isdigit(int c)判

38、断 c 是否是数字字符int isalpha(int c)判断 c 是否是一个字母int isalnum(int c)判断 c 是否是一个数字或字母int islower(int c)判断 c 是否是一个小写字母int islower(int c)判断 c 是否是一个小写字母int isupper(int c)判断 c 是否是一个大写字母int toupper(int c)如果 c 是一个小写字母,则返 回其大写字母int tolower(int c)如果 c 是一个大写字母,则返 回其小写字母.字符串和内存操作函数字符串和内存操作函数字符串和内存操作函数声明在字符串和内存操作函数声明在str

39、ing.hstring.h中,常用的有:中,常用的有:char*strchr(char*s,int c)char*strchr(char*s,int c)如果如果s s中包含字符中包含字符c,c,则返回一个指向则返回一个指向s s第一次出现的该字符的指第一次出现的该字符的指针针,否则返回否则返回NULLNULLchar*strstr(char*s1,char*s2)char*strstr(char*s1,char*s2)如果如果s2s2是是s1s1的一个子串,则返回一个指向的一个子串,则返回一个指向s1s1中首次出现中首次出现s2s2的位的位置的指针,否则返回置的指针,否则返回NULLNULL

40、char*strlwr(char*s)char*strlwr(char*s)将将s s中的字母都变成小写中的字母都变成小写char*strupr(char*s)char*strupr(char*s)将将s s中的字母都变成大写中的字母都变成大写char*strcpy(char*s1,char*s2)char*strcpy(char*s1,char*s2)将字符串将字符串s2s2的内容拷贝到的内容拷贝到s1s1中去中去char*strncpy(char*s1,char*s2,int n)char*strncpy(char*s1,char*s2,int n)将字符串将字符串s2s2的内容拷贝到的内

41、容拷贝到s1s1中去,但是最多拷贝中去,但是最多拷贝n n个字节。如果个字节。如果拷贝字节数达到拷贝字节数达到n n,那么就不会往,那么就不会往s1s1中写入结尾的中写入结尾的00.字符串和内存操作函数字符串和内存操作函数char*strcat(char*s1,char*s2)char*strcat(char*s1,char*s2)将字符串将字符串s2s2添加到添加到s1s1末尾末尾int strcmp(char*s1,char*s2)int strcmp(char*s1,char*s2)比较两个字符串,大小写相关。如果返回值小于比较两个字符串,大小写相关。如果返回值小于0 0,则说明,则说明

42、s1s1按按字典顺序在字典顺序在s2s2前面;返回值等于前面;返回值等于0 0,则说明两个字符串一样;返回,则说明两个字符串一样;返回值大于值大于0 0,则说明,则说明s1s1按字典顺序在按字典顺序在s2s2后面。后面。int stricmp(char*s1,char*s2)int stricmp(char*s1,char*s2)比较两个字符串,大小写无关。其他和比较两个字符串,大小写无关。其他和strcmpstrcmp同。同。void*memcpy(void*s1,void*s2,int n)void*memcpy(void*s1,void*s2,int n)将内存地址将内存地址s2s2处的

43、处的n n字节内容拷贝到内存地址字节内容拷贝到内存地址s1s1void*memset(void*s,int c,int n)void*memset(void*s,int c,int n)将内存地址将内存地址s s开始的开始的n n个字节全部置为个字节全部置为c c.字符串转换函数字符串转换函数 有几个函数,可以完成将字符串转换为整数,或将整数转换成字符串等这类功能。它们定义在 stdlib.h中:int atoi(char*s)将字符串s里的内容转换成一个整型数返回。比如,如果字符串s的内容是“1234”,那么函数返回值就是1234double atof(char*s)将字符串s中的内容转换成浮点数。.字符串转换函数字符串转换函数char*itoa(int value,char*string,int radix);将整型值value以radix进制表示法写入 string。比如:char szValue20;itoa(32,szValue,10);则使得szValue的内容变为“32”itoa(32,szValue,16);则使得szValue的内容变为“20”

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁