知识屋:更实用的电脑技术知识网站
所在位置:首页 > 科技

自学C++基础教程(标准库函数 与 递归)

发表时间:2022-03-25来源:网络

标准库函数

C++标准函数库为C++程序员们提供了一个可扩展的基础性框架。 程序员从中可以获得极大的便利,同时也可以通过继承现有类,自己编制符合接口规范的容器、算法、迭代子等方式对之进行扩展。它大致包含了如下几个组件:

1:C标准函数库,基本保持了与原有C语言程序库的良好兼容,尽管有些微变化。那就是在C++标准库中存在两套C的函数库,一套是带有.h扩展名的(比如),而另一套则没有(比如)。这个也是本节学习的重点。

2:语言支持(language support)部分,包含了一些标准类型的定义以及其他特性的定义,这些内容,被用于标准库的其他地方或是具体的应用程序中。

3:诊断(diagnostics)部分,提供了用于程序诊断和报错的功能,包含了异常处理(exception handling),断言(assertions),错误代码(error number codes)三种方式。

4:通用工具(general utilities)部分,这部分内容为C++标准库的其他部分提供支持,当然也可以在自己的程序中调用相应功能。比如:动态内存管理工具,日期/时间处理工具。

5:字符串(string)部分,用来代表和处理文本。它提供了足够丰富的功能。事实上,文本是一个string对象,它可以被看作是一个字符序列,字符类型可能是char,或者wchar_t等等。string可以被转换成char*类型,这样便可以和以前所写的C/C++代码和平共处了。因为那时侯除了char*,没有别的。

6:容器(containers)部分,STL的一个重要组成部分,涵盖了许多数据结构。

7:算法(algorithms)部分,STL的一个重要组成部分,包含了大约70个通用算法,用于操控各种容器,同时也可以操控内建数组。

8:迭代器(iterators)部分,STL的一个重要组成部分,如果没有迭代器的撮合,容器和算法便无法结合的如此完美。事实上,每个容器都有自己的迭代器,只有容器自己才知道如何访问自己的元素。它有点像指针,算法通过迭代器来定位和操控容器中的元素。

9:输入/输出(input/output)部分,就是经过模板化了的原有标准库中的iostream部分,它提供了对C++程序输入输出的基本支持。

C标准函数库包含了丰富的函数:

C语言标准库中的各个函数,类型以及宏分别在以下标准头文件中:

assert.h float.h math.h stdarg.h stdlib.h ctype.h limits.h setjmp.h stddef.h string.h errno.h locale.h signal.h stdio.h time.h

头文件声明格式为:

#include

输入输出函数:

标准I/O函数中包含了如下几个常用的函数:scanf、printf、getchar、putchar、gets、puts等。

int scanf(const char *format, arg_list)

scanf主要从标准输入流中获取参数值,format为指定的参数格式及参数类型

int printf(const char *format, arg_list)

printf主要是将格式化字符串输出到标准输出流中。

输入输出函数:

int getchar(void)

getchar主要是从标准输入流读取一个字符。


int putchar(int ch)


putchar(ch)主要是把字符ch写到标准流stdout中去。

char * gets(char *str)

gets主要是从标准输入流读取字符串并回显,读到换行符时退出,并会将换行符省去。

int puts(char *str)

puts主要是把字符串str写到标准流stdout中去,并会在输出到最后时添加一个换行符。

在代码栏输入以下代码,编译查看输出结果,对比和scanf和printf有什么不同:

#include void main() { char str[100] = {}; gets(str); puts(str); }

数学函数:

头文件中说明了数学函数和宏。

数学函数:

在代码栏输入以下代码,编译查看输出结果,思考高中的几何知识:

#include using namespace std; #include void main() { float a = 3,b = 4,c; c = sqrt(pow(a,2)+pow(b,2)); cout

strtod函数用于把字符串s的前缀转换成double类型。

数值转换函数:

strtol函数用于把字符串的前缀转换成long类型。

strtoul函数的功能与strtol函数相同,只是结果为unsigned long类型。

数值转换函数:

在代码栏输入以下代码,编译查看输出结果:

#include using namespace std; void main() { int iValue = 125; char str[100] = {}; itoa(iValue ,str,10); cout

memmove函数的功能与memcpy相似,不同之处是当发生对象重叠时,该函数仍能正确执行。

内存操作函数 compare比较

memcmp函数用于把buf1的前count个字符与buf2相比较。

memset函数用于把dest中的前count个字符替换为c,并返回dest。

内存操作函数

在代码栏输入以下代码,编译查看输出结果:

#include using namespace std; void main() { char str1[100] = {}; char str2[100] = "helloworld"; memcpy(str1,str2,5); cout

字符串操作函数 catenate 链接

strcat函数用于把字符串strSource连结到strDestination的尾部,并返回strDestination。

strncat函数用于把字符串strSource中最多count个字符连接到字符串strDest的尾部,并以'\0'结束,返回strDest。

字符串操作函数

strcmp函数用于比较字符串string1和string2; 当string1string2时它返回一个正数;当string1== string2时它返回0。

strncmp函数用于将字符串string1中最多count个字符与字符串string2相比较。当string1string2时它返回一个正数;当string1==string2时它返回0。

字符串操作函数

strrchr函数用于返回一个指向字符串string中字符c最后一次出现的位置的指针。如果string中不包含c,那么函数返回NULL。

strspn函数用于返回字符串string中,由字符串strCharSet中的字符构成的第一个子字符串的长度。

strcspn函数用于返回字符串string中由不在字符串strCharSet中的字符组成的第一个字符串的长度。

strpbrk函数用于返回指向字符串strCharSet中的任意字符第一次出现在字符串string中的位置的指针。

strstr函数用于返回指向字符串strSearch第一次出现在字符串string中的位置的指针。

strlen函数用于返回字符串string的长度。

在代码栏输入以下代码,编译查看输出结果:

#include using namespace std; void main() { char str1[100] = {}; char str2[100] = "helloworld"; strcpy(str1,str2); if(0==strcmp(str1,str2)) cout
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜