C/C++的常用库及库函数学习了解
来源:互联网 发布:品茗网络计划软件 编辑:程序博客网 时间:2024/05/17 03:12
C/C++的常用库及库函数学习了解
在这主要介绍的是C/C++下一些基本库的了解学习及库下一些基本函数的解释和Demo展示。
首先来看几个问题:
1. #include <>和#include“”的区别:
<>:引用的是编辑器的类库路径里面的头文件
“”:引用的是个人程序目录下的相对路径中的头文件
2.C和C++对头文件的引用有什么区别:
C:#include<stdio.h>
C++: #include <iostream>
对C:
#include<stdio.h>:定义基本输入/输出函数
#include<string.h>:定义字符串处理函数
#include<float.h>:定义浮点数处理函数
#include<stdlib.h>:定义杂项函数及内存分配处理函数
#include<math.h>:定义基本数学处理函数
#include<ctype.h>:定义对字符的处理函数
对C++:
#include<iostream>:数据流输入输出
#include<cstdio>:输入输出函数
#include <cstring>:字符串处理
#include <cfloat>:浮点数处理
#include<cstdlib>:杂项函数及内存分配函数
#include <cmath>:数学函数
#include <cctype>:字符处理
stdio.h
文件访问:
·fopen打开文件
·fclose 关闭文件
其中需要注意的有:
1/如果文件成功打开的话,fb!=null,如果文件成功关闭的话,返回的int型数i==0
2/fopen的第一个参数是需要打开的文件名,第二个参数是以什么方式打开,含有方式有:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
字符 含义
────────────────────────────
"r" 打开文字文件只读
"w" 创建文字文件只写
"a" 增补,如果文件不存在则创建一个
"r+" 打开一个文字文件读/写
"w+" 创建一个文字文件读/写
"a+" 打开或创建一个文件增补
"b" 二进制文件(可以和上面每一项合用)
"t" 文这文件(默认项)
Demo :
#iclude<stdio.h>int main(){ FILE *fp; /*定义一个文件指针*/ int i; fp=fopen("test.txt", "rb"); /*打开当前目录名为CLIB的文件只读*/ if(fp==NULL) /*判断文件是否打开成功*/ puts("File open error");/*提示打开不成功*/ i=fclose(fp); /*关闭打开的文件*/ if(i==0) /*判断文件是否关闭成功*/ printf("Close OK"); /*提示关闭成功*/ elseputs("File close error");/*提示关闭不成功*/return 0; }
·fprintf():文件的顺序写函数,返回数是实际写入文件中的字节数,错误时返回负数
·fputs():文件的顺序写函数,函数返回0时表明将string指针所指的字符串写入文件中的操作成功,返回非0时,表明写操作失败。
·fputc():文件的顺序写函数,返回一个向文件所写字符的值,此时写操作成功,否则返回EOF(其值为-1,在stdio.h中定义)表示写操作错误。
Demo :
<span style="color:#000000;">#include<stdio.h>int main(){ char *s="That's good news"; /*定义字符串指针并初始化*/ int i=250; /*定义整型变量并初始化*/ FILE *fp; /*定义文件指针*/ fp=fopne("test.dat", "w"); /*建立一个文字文件只写*/ fputs("Your score of TOEFLis", fp);/*向所建文件写入一串字符*/ fputc(':', fp); /*向所建文件写冒号:*/ fprintf(fp, "%d/n", i); /*向所建文件写一整型数*/ fprintf(fp, "%s", s); /*向所建文件写一字符串*/ fclose(fp); /*关闭文件*/return 0;}</span>
·fscanf():顺序读操作函数,返回值为EOF(即-1),表明读错误,否则读数据成功。
·fgets():顺序读操作函数,从文件中读取至多n-1个字符(n用来指定字符数),并把它们放入string指向的字符串中,在读入之后自动向字符串未尾加一个空字符,读成功返回string指针,失败返回一个空指针。
·fgetc():顺序读操作函数,返回文件当前位置的一个字符,读错误时返回EOF。
Demo:
<span style="font-size:18px;">#include<stdio.h>int main(){ char *s, m[20]; int i; FILE *fp; fp=fopen("test.dat", "r"); /*打开文字文件只读*/ fgets(s, 24, fp); /*从文件中读取23个字符*/ printf("%s", s); /*输出所读的字符串*/ fscanf(fp, "%d", &i); /*读取整型数*/ printf("%d", i); /*输出所读整型数*/ putchar(fgetc(fp)); /*读取一个字符同时输出*/ fgets(m, 17, fp); /*读取16个字符*/ puts(m); /*输出所读字符串*/ fclose(fp); /*关闭文件*/ getch(); /*等待任一键*/return 0;}</span>
·printf():格式化输出函数
输出格式总结:
1)类型
类型字符用以表示输出数据的类型,其格式符和意义如下表所示:
格式字符
意义
d
以十进制形式输出带符号整数(正数不输出符号)
o
以八进制形式输出无符号整数(不输出前缀0)
x,X
以十六进制形式输出无符号整数(不输出前缀Ox)
u
以十进制形式输出无符号整数
f
以小数形式输出单、双精度实数
e,E
以指数形式输出单、双精度实数
g,G
以%f或%e中较短的输出宽度输出单、双精度实数
c
输出单个字符
s
输出字符串
2)标志
标志字符为-、+、#和空格四种,其意义下表所示:
标志
意义
-
结果左对齐,右边填空格
+
输出符号(正号或负号)
空格
输出值为正时冠以空格,为负时冠以负号
#
对c、s、d、u类无影响;
对o类,在输出时加前缀o;
对x类,在输出时加前缀0x;
对e、g、f类当结果有小数时才给出小数点。
Demo:
<span style="font-size:18px;">#include<stdio.h>#include<string.h>int main(){ int i = 6; float j = 2.0; char k[20] = "Hello the world"; printf("From 百度百科"); printf("i=%d;j=%f", i, j); printf("k=%c", k); return 0;}</span>
·sprintf():将格式化的数据写入到某个字符串
Demo:
<span style="font-size:18px;">#include<stdio.h>int main(){ int s; sprintf(s, "%d", 123); //将"123"赋值给s return 0;}</span>
·strlen():统计字符串str中字符的个数(不包括终止符’\0’)
Demo:
#include#includeint main(){ char *str="how are you!"; int aa; aa = strlen(str); printf("the lence is:%d\n",aa); //结果是12return 0;}
·strcpy():拷贝函数,拷贝一个字符串到另外一个
Demo:
#include <stdio.h>#include <string.h>int main(){ char string[10]; char *str1 = "abcdefghi"; strcpy(string, str1); //将str1的值赋给string printf("%s\n", string);return 0;}
·strcat():字符串拼接函数,(取消掉str1后面的’\0’实现拼接)
Demo:
#include <string.h>#include <stdio.h>int main(){ char destination[25]; char *Sa = "This", *Sb = "is", *Sc = "a words"; strcpy(destination, Sa); strcat(destination, Sb); strcat(destination, Sc); printf("%s\n", destination); //destination的内容便是This is a worldsreturn 0;}
·strchr():在一段字符串中查找给定字符的第一个匹配之处,其返回的值需要查找的字符在字符串的位置(%d类型)
·strcmp():字符串比较,intstrcmp(char *str1, char *str2);返回值是str1的Asic值减去str2的Asic值,如果是字符串,则是所有字符的Asic总和相减;两串相等,返回0。
如果忽略大小写:strncmpi();stricmp();strcmpi();
Demo:
#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 than buffer 1\n"); else printf("buffer 2 is less than buffer 1\n"); ptr = strcmp(buf2, buf3); if (ptr > 0) printf("buffer 2 is greater than buffer 3\n"); else printf("buffer 2 is less than buffer 3\n");return 0;}
·strrev():实现串倒转
·strupr():大小写转换之小写转大写
注:实际实现过程中发现string.h未对strupr()定义
Demo:
#include <string.h>#include <stdio.h>int main(){ char *string="abcdefghijklmnopqrstuvwxyz"; char *ptr; ptr=strupr(string); printf("%s",ptr); return 0;}
·strlwr():大小写转换之大写转小写
注:实际实现过程中发现string.h未对strlwr()定义
Demo:
#include <string.h>#include <stdio.h>int main(){ char str[]="HOW TO SAY?"; printf("%s",strlwr(str)); return 0;}
·memcpy():字符串拷贝
注:与strcpy()的区别在于,strcpy提供了字符串的复制。即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符。memcpy提供了一般内存的复制。即memcpy对于需要复制的内容没有限制,因此用途更广。
strcpy和memcpy主要有以下3方面的区别。
1、复制的内容不同。strcpy只能复制字符串,而memcpy可以复制任意内容,例如字符数组、整型、结构体、类等。
2、复制的方法不同。strcpy不需要指定长度,它遇到被复制字符的串结束符"\0"才结束,所以容易溢出。memcpy则是根据其第3个参数决定复制的长度。
3、用途不同。通常在复制字符串时用strcpy,而需要复制其他类型数据时则一般用memcpy
Demo:
#include <string.h>#include <stdio.h>int main(){ char srcm[]="******************************"; char destm[]="abcdefghijlkmnopqrstuvwxyz0123456709"; char *ptrm = new char[strlen(srcm)+1]; memcpy(ptrm,srcm,(strlen(srcm)+1)); if (ptrm) printf("destination after memcpy:%s\n",ptrm); else printf("memcpy failed"); delete []ptrm;return 0;}
·memset():函数原型: void *memset(void *s, int c, size_t n); 将字符串中的前n个字节内容设置为c。
Demo:
#include <string.h>#include <stdio.h>int main(){ char buffers[]="Hello world"; printf("Buffer before memset:%s\n",buffers); memset(buffers,'*',4); printf("Buffer after memset:%s\n",buffers);//结果输出:****o worldreturn 0;}
·memmove():字符串拷贝。
原型:void*memmove( void* dest, const void* src, size_t count );
将src中的count中字符串覆盖dest中。
stdlib.h
·malloc():分配指定字节数的内存,并返回该内存的指针。·calloc():在内存的动态存储区中分配指定长度的连续空间,函数返回一个指向分配起始地址的指针;如果分配不成功,返回NULL。·rand():生成0~RAND_MAX之间的一个随机数,其中RAND_MAX是stdlib.h中定义的一个整数,它与系统有关。注:srand和rand()配合使用产生伪随机数序列。rand函数在产生随机数前,需要系统提供的生成伪随机数序列的种子,rand根据这个种子的值产生一系列随机数。如果系统提供的种子没有变化,每次调用rand函数生成的伪随机数序列都是一样的。
·srand():srand函数是随机数发生器的初始化函数。
注:如果不配合此函数使用每次重新执行函数的时候生成的随机数不变。
free(void*ptr);释放ptr所指向的一块内存空间,ptr是一个任意类型的指针变量,它指向被释放区域的首地址。被释放区应是由malloc或calloc函数所分配的区域。
·abort():异常终止一个进程,无返回值。
- C/C++的常用库及库函数学习了解
- 常用的C库函数
- C语言的常用库函数
- C语言的常用库函数
- C语言的常用库函数
- C语言的常用库函数
- 常用库函数的C实现
- C语言的常用库函数
- C语言的常用库函数
- C语言的常用库函数
- c语言 常用的库函数
- C语言的常用库函数
- 【转帖】C语言的常用库函数使用方法分析及用途
- C语言的常用库函数使用方法分析及用途 (1)
- 库函数的认识及 C/C++常用 api 及基本库
- C风格字符串及常用库函数总结
- C语言常用头文件及库函数
- 常用C库函数的C实现
- Js运动动画系列2--透明度动画
- 微服务架构云化指南
- MYSQL错误代码对照大全
- 使用jad批量反编译class文件
- 安卓开发基础知识2(荣耀6Plus后置摄像头技术难度分析)
- C/C++的常用库及库函数学习了解
- 关于git 分支的小感悟
- Cronolog 分割 Tomcat8 Catalina.out日志
- binbinYang---android 手机端写Socket服务端和Socket客户端
- 读书笔记-现代操作系统-3储存管理-3.6有关实现的问题
- WPF中的模板(二)- ControlTemplate
- CCCC团体天梯赛练习题-排座位
- 阿里巴巴分布式服务框架 Dubbo 团队成员梁飞专访
- PHP常用函数集合(不定期更新)