C语言中常见的功能函数
c语言库函数表
c语言库函数表
C语言库函数表是一个包含许多C语言标准库函数的列表。
这些函数在C语言程序中非常常见,因为它们提供了很多基本的功能,例如输入/输出、字符串处理、数学计算等等。
在编写C语言程序时,使用这些函数可以简化代码,提高效率。
以下是一些常见的C语言库函数:
- printf():输出函数,可以输出各种数据类型的值。
- scanf():输入函数,可以读取各种数据类型的值。
- strlen():计算字符串长度的函数。
- strcpy():将一个字符串复制到另一个字符串的函数。
- strcat():将一个字符串追加到另一个字符串的函数。
- strcmp():比较两个字符串是否相等的函数。
- atof():将字符串转换为浮点数的函数。
- atoi():将字符串转换为整数的函数。
- rand():生成随机数的函数。
- abs():计算绝对值的函数。
- sin():计算正弦值的函数。
- cos():计算余弦值的函数。
- tan():计算正切值的函数。
- log():计算自然对数的函数。
- exp():计算指数的函数。
这些函数只是C语言库函数的冰山一角,还有很多其他函数可以
使用。
熟悉C语言库函数的使用方法可以让程序员更高效地编写代码,提高程序的可维护性和可读性。
C语言中常见功能函数
C语言中常见功能函数在C语言中,有很多常见的功能函数,它们是为了方便程序员在开发过程中进行一些常见操作而设计的。
下面是其中一些常见的功能函数:1.字符串操作函数:- strlen:用于获取字符串的长度。
- strcpy:用于复制字符串。
- strcat:用于拼接两个字符串。
- strcmp:用于比较两个字符串。
- strchr:用于在字符串中查找指定字符。
- strstr:用于在字符串中查找指定子字符串。
2.内存操作函数:- malloc:用于动态分配内存。
- free:用于释放动态分配的内存。
- memcpy:用于内存拷贝。
- memset:用于内存初始化。
3.文件操作函数:- fopen:用于打开文件。
- fclose:用于关闭文件。
- fgets:用于从文件中读取一行数据。
- fputs:用于向文件中写入一行数据。
- feof:用于判断是否到达文件末尾。
4.数学函数:- abs:用于计算绝对值。
- sin、cos、tan:用于计算三角函数值。
- sqrt:用于计算平方根。
- pow:用于计算幂运算。
5.随机数函数:- srand:用于设置随机数种子。
- rand:用于生成随机数。
6.时间函数:7.输入输出函数:- printf:用于向标准输出设备打印输出。
- scanf:用于从标准输入设备读取输入。
8.排序和查找函数:- qsort:用于对数组进行快速排序。
- bsearch:用于在有序数组中进行二分查找。
9.环境变量函数:- getenv:用于获取环境变量的值。
- setenv:用于设置环境变量的值。
10.字符处理函数:- isdigit:用于判断字符是否是数字。
- isalpha:用于判断字符是否是字母。
- isspace:用于判断字符是否是空白字符。
以上只是C语言中常见的一些功能函数,实际上C语言库中还有很多其他功能函数,可以根据需求选择合适的函数来完成相应的操作。
无论是字符串操作、内存操作、文件操作、数学运算,还是随机数生成、时间处理、输入输出以及排序和查找等,C语言提供了丰富的函数库来支持这些常见的功能需求。
C语言函数大全
C语言函数大全C语言是一种通用的高级语言,它广泛应用于系统软件、应用软件、驱动程序、网络通信、嵌入式系统等领域。
在C语言中,函数是非常重要的一部分,它可以帮助我们组织代码,提高代码的重用性和可维护性。
本文将介绍C语言中常用的函数,帮助大家更好地理解和应用C语言。
一、基本概念。
在C语言中,函数是一段完成特定任务的程序代码,它可以接受参数并返回值。
函数的基本结构包括函数名、参数列表、返回类型、函数体和返回语句。
函数的定义通常包括函数头和函数体两部分,函数头用于声明函数的名称、参数列表和返回类型,函数体包括具体的代码实现。
二、函数的声明与定义。
在C语言中,函数的声明和定义是分开的。
函数的声明用于告诉编译器函数的存在,函数的定义则包括函数的具体实现。
函数的声明通常包括函数名、参数列表和返回类型,函数的定义则包括函数名、参数列表、返回类型和函数体。
函数的声明和定义可以分开写在不同的文件中,通过头文件的方式进行引用。
三、函数的参数传递。
在C语言中,函数的参数传递可以通过值传递和引用传递两种方式。
值传递是指将实际参数的值复制一份传递给形式参数,函数内部对形式参数的修改不会影响实际参数。
引用传递是指将实际参数的地址传递给形式参数,函数内部对形式参数的修改会影响实际参数。
C语言中默认采用值传递的方式,如果需要使用引用传递,可以通过指针或引用的方式实现。
四、函数的返回值。
在C语言中,函数可以有返回值,也可以没有返回值。
有返回值的函数在定义时需要指定返回类型,函数体中需要使用return语句返回值。
没有返回值的函数通常使用void作为返回类型,函数体中可以省略return语句。
在调用函数时,可以通过赋值或者直接使用返回值的方式获取函数的返回结果。
五、常用的标准库函数。
C语言标准库提供了丰富的函数库,包括数学函数、字符串函数、输入输出函数等。
常用的标准库函数有printf、scanf、malloc、free、strcpy、strcat、strlen、sin、cos等。
c语言中字符串操作函数及功能
c语言中字符串操作函数及功能C语言中字符串操作函数及功能在C语言中,字符串是一组由字符组成的数据,用于存储和操作文本信息。
C语言提供了许多字符串操作函数,以便开发者能够方便地处理字符串。
本文将介绍一些常用的字符串操作函数及其功能。
1. strlen函数:用于获取字符串的长度。
它接受一个字符串作为参数,并返回该字符串的长度,即字符的个数。
例如,strlen("hello")将返回5。
2. strcpy函数:用于将一个字符串复制到另一个字符串中。
它接受两个参数,第一个参数是目标字符串,第二个参数是源字符串。
例如,strcpy(dest, src)将源字符串src复制到目标字符串dest中。
3. strcat函数:用于将一个字符串连接到另一个字符串的末尾。
它接受两个参数,第一个参数是目标字符串,第二个参数是要追加的字符串。
例如,strcat(dest, src)将字符串src追加到字符串dest的末尾。
4. strcmp函数:用于比较两个字符串。
它接受两个参数,分别是要比较的两个字符串。
如果两个字符串相等,返回0;如果第一个字符串小于第二个字符串,返回负数;如果第一个字符串大于第二个字符串,返回正数。
例如,strcmp("hello", "world")将返回负数。
5. strchr函数:用于在字符串中查找指定字符的第一次出现的位置。
它接受两个参数,第一个参数是要查找的字符串,第二个参数是要查找的字符。
如果找到了指定字符,返回该字符在字符串中的位置;如果未找到,返回NULL。
6. strstr函数:用于在字符串中查找指定子串的第一次出现的位置。
它接受两个参数,第一个参数是要查找的字符串,第二个参数是要查找的子串。
如果找到了指定子串,返回该子串在字符串中的位置;如果未找到,返回NULL。
7. strtok函数:用于将字符串分割为多个子串。
它接受两个参数,第一个参数是要分割的字符串,第二个参数是分割的分隔符。
c语言中 所有函数用法
c语言中所有函数用法在C语言中,函数是程序的基本构建块之一。
以下是C语言中一些常见的函数用法:1. 函数的定义:```c// 函数原型声明int add(int a, int b);// 函数定义int add(int a, int b) {return a + b;}```2. 函数的调用:```cint result = add(3, 4);```3. 函数参数传递方式:-按值传递:```cvoid modifyValue(int x) {x = 10;}int main() {int num = 5;modifyValue(num);// num 的值仍然是5,因为modifyValue 中的修改不影响原始值return 0;}```-按引用传递:```cvoid modifyValue(int *x) {*x = 10;}int main() {int num = 5;modifyValue(&num);// num 的值现在是10,因为modifyValue 中通过指针修改了原始值return 0;}```4. 函数返回值:```cint add(int a, int b) {return a + b;}int main() {int result = add(3, 4);// result 的值为7return 0;}```5. 函数多参数:```cfloat calculateAverage(int num1, int num2, int num3) {return (num1 + num2 + num3) / 3.0;}int main() {float avg = calculateAverage(10, 20, 30);// avg 的值为20.0return 0;}```6. 函数重载(C语言不支持函数重载):C语言本身不支持函数重载。
如果你需要实现类似功能,可以使用不同的函数名或者使用默认参数。
c语言标准函数库
c语言标准函数库C语言标准函数库。
C语言标准函数库(C standard library)是C语言的标准库,提供了一系列的函数、宏和变量,用于支持C语言的基本操作和功能。
C语言标准函数库包含在C语言标准中,并由各个C语言编译器实现和提供。
在本文中,我们将对C语言标准函数库进行详细介绍,包括其功能、常用函数以及使用方法。
C语言标准函数库的功能非常丰富,包括数学运算、字符串操作、输入输出、内存管理等多个方面。
其中,数学函数库包括了常见的数学运算函数,如求幂、开方、三角函数等;字符串函数库包括了字符串的处理函数,如字符串拷贝、比较、查找等;输入输出函数库包括了文件操作函数、标准输入输出函数等;内存管理函数库包括了动态内存分配函数、内存拷贝函数等。
在C语言标准函数库中,有一些函数是非常常用的,例如printf()、scanf()、malloc()、free()等。
其中,printf()函数用于将格式化的数据输出到标准输出设备,而scanf()函数用于从标准输入设备中读取格式化的数据。
malloc()函数用于动态分配内存空间,而free()函数用于释放之前动态分配的内存空间。
除了以上提到的函数外,C语言标准函数库还包括了大量其他的函数,如数学函数库中的sin()、cos()、tan()等三角函数,字符串函数库中的strcpy()、strcmp()、strlen()等字符串处理函数,输入输出函数库中的fopen()、fclose()、fread()、fwrite()等文件操作函数,以及内存管理函数库中的memcpy()、memset()等内存操作函数。
在使用C语言标准函数库时,我们需要包含相应的头文件,并链接相应的库文件。
例如,如果我们需要使用数学函数库中的sin()函数,就需要在程序中包含<math.h>头文件,并在编译链接时加上"-lm"选项。
同样,如果我们需要使用文件操作函数库中的fopen()函数,就需要包含<stdio.h>头文件,并在编译链接时不需要额外的选项。
c语言函数调用例子
c语言函数调用例子函数调用是C语言中常用的一种语法结构,通过函数调用可以实现代码的模块化和复用。
下面列举了十个不同的C语言函数调用的例子,以展示函数调用的不同用法和特点。
1. 系统库函数的调用系统库函数是C语言提供的一些常用函数,可以直接调用来完成一些常见的操作。
例如,可以使用printf函数来输出字符串到标准输出:```c#include <stdio.h>int main() {printf("Hello, World!\n");return 0;}```2. 自定义函数的调用除了系统库函数,我们也可以自己定义函数来实现特定的功能。
例如,可以定义一个函数来计算两个整数的和,并在主函数中调用该函数:```c#include <stdio.h>int add(int a, int b) {return a + b;}int main() {int a = 3, b = 5;int sum = add(a, b);printf("The sum of %d and %d is %d\n", a, b, sum);return 0;}```3. 函数的递归调用递归是一种函数调用自身的方法,可以解决一些需要重复执行的问题。
例如,可以使用递归函数来计算斐波那契数列的第n项:```c#include <stdio.h>int fibonacci(int n) {if (n <= 1) {return n;} else {return fibonacci(n - 1) + fibonacci(n - 2);}}int main() {int n = 10;int result = fibonacci(n);printf("The %dth Fibonacci number is %d\n", n, result);return 0;}```4. 函数的多次调用一个函数可以被多次调用,每次调用可以传入不同的参数。
c语言copula函数
c语言copula函数copula函数是C语言中的一个重要函数,也称为链接动词函数。
它的作用是在两个对象之间建立起连接关系,通过指定的条件将两个对象绑定在一起。
在C语言中,基本的copula函数有以下几种形式:1. strcat函数:将源字符串的内容连接到目标字符串的末尾。
函数原型为:char *strcat(char *dest, const char *src)。
其中,dest参数是目标字符串,src参数是源字符串。
使用这个函数时,需要保证目标字符串有足够的空间来容纳新添加的内容。
2. strncat函数:与strcat函数类似,但是它可以指定要连接的源字符串的长度。
函数原型为:char *strncat(char *dest, const char*src, size_t n)。
其中,n参数是要复制的最大字符数。
3. strcpy函数:将源字符串的内容复制到目标字符串中。
函数原型为:char *strcpy(char *dest, const char *src)。
其中,dest参数是目标字符串,src参数是源字符串。
使用这个函数时,需要保证目标字符串有足够的空间来容纳源字符串的内容。
4. strncpy函数:与strcpy函数类似,但是它可以指定要复制的源字符串的长度。
函数原型为:char *strncpy(char *dest, const char*src, size_t n)。
其中,n参数是要复制的最大字符数。
5. sprintf函数:将格式化的数据写入一个字符串中。
函数原型为:int sprintf(char *str, const char *format, ...)。
其中,str参数是目标字符串,format参数是格式化字符串,后面的参数是要替换格式化字符串中占位符的具体值。
使用这个函数时,需要保证目标字符串有足够的空间来容纳替换后的内容。
6. sscanf函数:从一个字符串中读取格式化的数据。
C语言中的标准库函数和常用库的应用
C语言中的标准库函数和常用库的应用在C语言编程中,标准库函数和常用库的应用是非常重要的。
标准库函数提供了各种各样的功能,可以帮助我们更方便地进行程序开发。
常用库则是一些经常被使用的库,可以帮助我们快速解决一些常见的编程问题。
一、标准库函数的应用C语言的标准库函数主要分为以下几类:输入输出函数、字符串处理函数、数学函数、时间函数等。
下面将针对每个类别进行详细介绍。
1. 输入输出函数在C语言中,有一系列的输入输出函数,如printf、scanf、getchar、putchar等。
这些函数可以帮助我们完成与用户的交互,实现输入与输出的功能。
例如,printf函数可以用于输出一定格式的内容,而scanf函数可以用于从用户输入中获取数据。
通过运用这些函数,我们可以使程序更加灵活、交互性更好。
2. 字符串处理函数在C语言中,字符串是一种常见的数据类型,我们经常需要对字符串进行操作。
标准库提供了一系列的字符串处理函数,如strcpy、strcat、strlen等。
这些函数可以帮助我们进行字符串的拷贝、连接、长度计算等操作,大大提高了字符串处理的效率。
3. 数学函数C语言的标准库还提供了一系列的数学函数,如sin、cos、sqrt等。
这些函数可以帮助我们进行各种数学运算,如三角函数的计算、平方根的计算等。
通过运用这些数学函数,我们可以更简洁、高效地解决数学问题。
4. 时间函数在程序中,时间的处理常常是必不可少的。
C语言的标准库提供了一些时间处理的函数,如time、localtime、strftime等。
这些函数可以帮助我们获取系统时间、进行时间格式化等操作。
通过运用这些函数,我们可以更好地掌控时间,实现更加精确的程序功能。
二、常用库的应用除了标准库函数外,常用库也在C语言的编程中发挥着重要的作用。
以下是一些常用库的简要介绍:1. 标准输入输出库(stdio.h)stdio.h库提供了一系列与输入输出相关的函数,如文件读写、读取用户输入等。
c语言中查询函数
c语言中查询函数在C语言中,查询函数通常是指查找或搜索某个特定值的函数。
这些函数通常用于数组、链表等数据结构中。
以下是一些常用的查询函数:1. 线性查找(Linear Search):在数组中查找特定值的简单方法。
它从数组的第一个元素开始,逐个比较每个元素,直到找到目标值或遍历完整个数组。
时间复杂度为O(n)。
c#include <stdio.h>int linear_search(int arr[], int n, int target) {for (int i = 0; i < n; i++) {if (arr[i] == target) {return i; // 返回目标值的索引}}return -1; // 如果没有找到目标值,返回-1}int main() {int arr[] = {1, 3, 5, 7, 9};int target = 5;int n = sizeof(arr) / sizeof(arr[0]);int index = linear_search(arr, n, target);if (index != -1) {printf("找到目标值%d 在索引%d\n", target, index);} else {printf("未找到目标值 %d\n", target);}return 0;}2. 二分查找(Binary Search):在已排序的数组中查找特定值的方法。
它通过将数组分成两半,然后根据目标值与中间元素的比较结果来确定下一步查找的范围。
时间复杂度为O(log n)。
c#include <stdio.h>int binary_search(int arr[], int n, int target) {int left = 0;int right = n - 1;while (left <= right) {int mid = left + (right - left) / 2;if (arr[mid] == target) {return mid; // 返回目标值的索引} else if (arr[mid] < target) {left = mid + 1;} else {right = mid - 1;}}return -1; // 如果没有找到目标值,返回-1}int main() {int arr[] = {1, 3, 5, 7, 9};int target = 5;int n = sizeof(arr) / sizeof(arr[0]);int index = binary_search(arr, n, target);if (index != -1) {printf("找到目标值%d 在索引%d\n", target,index);} else {printf("未找到目标值 %d\n", target);}return 0;}3. 哈希查找(Hashing):通过使用哈希表来存储和查找特定值的方法。
C语言程序设计函数介绍
C语言程序设计函数介绍函数是C语言程序设计中的重要概念,它可以将代码逻辑分割成小块,并可以重复使用这些代码段。
在C语言程序中,函数可以接受参数并返回一个值。
函数有助于提高代码的可读性、可维护性和可重用性。
在本文中,我将介绍函数的基本概念、语法和用法,以及一些常见的函数类型和应用案例。
1.函数的基本概念函数是一段封装了特定功能的代码块,它接受输入参数(可选)并返回一个值(可选)。
函数由函数名、参数列表、函数体和返回语句组成。
在C语言中,函数通常被定义在主函数之前。
2.函数的语法C语言中声明函数的语法如下:返回值类型函数名(参数列表)//函数体return 返回值;其中,返回值类型指定函数返回的数据类型,函数名是用户自定义的标识符,参数列表指定函数接受的输入参数,函数体是实现特定功能的代码块,return语句用于返回函数的结果。
3.函数的调用在C语言中,通过函数名和一对小括号来调用函数。
如果函数有参数,参数需要按照函数定义的顺序传递给函数。
函数调用的语法如下:函数名(参数列表);4.函数的返回值函数可以返回一个值,返回值的类型与函数定义中指定的返回值类型相匹配。
返回值使用return语句指定,并在函数调用处进行接收。
例如:int add(int a, int b)return a + b;int sum = add(2, 3); // 调用add函数并将返回值赋给sum变量5.函数的参数函数可以接受多个参数,参数列表指定了函数接受的参数类型和参数名。
参数可以是基本数据类型(如int、float等)、指针或自定义数据类型。
例如:int max(int a, int b)return (a > b) ? a : b;int maxNum = max(10, 20); // 调用max函数并将返回值赋给maxNum变量6.函数的种类函数可以分为以下几种类型:- 无返回值无参数的函数,如void类型的函数。
c库函数手册
c库函数手册C语言是一门广泛应用于程序设计领域的编程语言,而C库函数则是它的重要组成部分之一。
C库函数是指在C语言中可以直接调用的函数,这些函数是为方便程序员快速完成各种任务而设计的,有很多种类型,例如文件操作、字符串处理、数学计算等等。
由于C语言应用广泛,C库函数也被广泛使用,成为C语言开发者的重要工具。
下面是对C库函数手册的中文介绍,内容包括常见的C库函数调用、相关函数的使用方法、和一些实例。
希望对初学者和使用者有所帮助。
一、文件操作文件操作是C库函数的重要内容之一,以下是一些常用的文件操作函数:1. fopen函数函数原型:FILE *fopen(const char *filename, const char *mode);函数功能:打开一个文件并返回文件指针参数说明:第一个参数表示文件名,第二个参数表示文件打开的模式(r:读取,w:写入,a:追加,rb:二进制读取,wb:二进制写入,ab:二进制追加)返回值:返回文件指针,如果文件打开失败则返回NULL函数功能:关闭指定文件参数说明:表示需要关闭的文件指针返回值:关闭成功返回0,失败返回非0值3. fseek函数函数功能:将文件读写指针指向文件的指定位置参数说明:第一个参数表示文件指针,第二个参数表示偏移量,第三个参数表示起始点(SEEK_SET、SEEK_CUR、SEEK_END)4. fgetc函数返回值:成功返回读取的字符,读取失败或到达文件结尾返回EOF二、字符串处理1. strcpy函数函数功能:将源字符串拷贝到目标字符串中参数说明:第一个参数为目标字符串地址,第二个参数为源字符串地址返回值:返回目标字符串地址示例程序:#include <stdio.h>#include <string.h>int main(){char src[50], dest[50];strcpy(src, "This is a test string.");strcpy(dest, src);printf("源字符串: %s\n目标字符串: %s", src, dest);return 0;}输出结果:源字符串: This is a test string.目标字符串: This is a test string.函数功能:计算字符串的长度字符串的长度为: 13拼接后的字符串: 你好,世界!三、数学计算C语言的数学计算可以通过数学库函数来实现,以下是一些常用的数学计算函数:函数原型:double sqrt(double x);函数功能:求平方根返回值:返回平方根int main () {double a = 2.0, b;b = sqrt(a);printf("a的平方根为: %f\n", b);return 0;}a的平方根为: 1.4142142. abs函数函数原型:int abs(int x);a的绝对值为: 10四、其他常用函数除了上述的文件操作、字符串处理、数学计算外,C库函数还有很多其它的常用函数。
C语言常见头文件汇总
C语言常见头文件汇总C语言是一种广泛应用的编程语言,在学习和使用C语言时,我们通常会使用一些常见的头文件来调用各种函数和实现一些功能。
以下是一些常见的C语言头文件及其功能的汇总:1. stdio.h:提供了一些输入输出相关的函数,如printf、scanf等。
它是C语言中最常见的、最基础的头文件之一2. math.h:提供了数学运算相关的函数,如sin、cos、sqrt等。
3. string.h:提供了一些字符串操作相关的函数,如strcpy、strcat、strlen等。
4. stdlib.h:提供了一些通用的函数,如malloc、free、rand等。
5. ctype.h:提供了一些用于字符处理的函数,如isalnum、isalpha、tolower等。
6. stdbool.h:定义了bool类型及其取值true和false。
8. assert.h:提供了一些断言相关的函数,如assert。
9. limits.h:定义了一些与整数类型相关的宏,如INT_MAX、INT_MIN等。
10. float.h:定义了一些与浮点数类型相关的宏,如FLT_MAX、FLT_MIN等。
11. errno.h:定义了一些与错误码相关的宏和函数,如errno、perror等。
12. fcntl.h:定义了一些与文件控制相关的宏和函数,如open、close等。
13. signal.h:定义了一些与信号处理相关的宏和函数,如signal、kill等。
14. setjmp.h:定义了一些与非局部跳转相关的宏和函数,如setjmp、longjmp等。
15. locale.h:定义了一些与本地化相关的宏和函数,如setlocale、localeconv等。
16. stdarg.h:定义了一些用于可变参数函数的宏和函数,如va_list、va_start、va_arg等。
17. ctype.h:定义了一些字符分类函数,如isalpha、isdigit等。
C语言中常见的功能函数
C语言中常见的功能函数1.abs(函数:abs(函数返回参数的绝对值。
表达式abs(x)的功能是返回x的绝对值。
它的原型为:double abs( double x );2.acos(函数:acos(函数返回参数的反余弦值。
它的原型为:double acos( double x );3.asin(函数:asin(函数返回参数的反正弦值。
它的原型为:double asin( double x );4.atan(函数:atan(函数返回参数的反正切值。
它的原型为:double atan( double x );5.atan2(函数:atan2(函数返回给定参数的反正切值。
它的原型为:double atan2( double y, double x );6.ceil(函数:ceil(函数返回不低于参数的最小整数。
它的原型为:double ceil( double x );7.cos(函数:cos(函数返回参数的余弦值。
它的原型为:doublecos( double x );8.cosh(函数:cosh(函数返回参数的双曲余弦值。
它的原型为:double cosh( double x );9.exp(函数:exp(函数返回以e为底的参数的指数。
它的原型为:double exp( double x );10.fabs(函数:fabs(函数返回参数的绝对值。
它的原型为:double fabs( double x );11.floor(函数:floor(函数返回大于或等于参数的最小整数。
它的原型为:double floor( double x );12.fmod(函数:fmod(函数返回两个参数的余数。
它的原型为:double fmod( double x, double y );13.frexp(函数:frexp(函数将参数分解为一个尾数和一个整数次幂。
它的原型为:double frexp( double x, int *exp );14.ldexp(函数:ldexp(函数将一个尾数乘以2的整数次幂。
c语言中f函数
c语言中f函数F函数是C语言中的一个重要函数,它主要用于执行文件操作。
在C 语言中,文件操作是一项非常常见的操作,我们可以通过使用F函数来进行文件的读取、写入、修改和删除等操作,以实现对文件的管理和处理。
我们需要了解F函数的基本用法。
F函数在C语言中是一个库函数,需要包含头文件stdio.h来使用。
F函数的基本语法如下:FILE *fopen(const char *filename, const char *mode);int fclose(FILE *stream);int fgetc(FILE *stream);int fputc(int c, FILE *stream);size_t fread(void *ptr, size_t size, size_t count, FILE *stream);size_t fwrite(const void *ptr, size_t size, size_t count, FILE *stream);int fseek(FILE *stream, long int offset, int origin);long int ftell(FILE *stream);void rewind(FILE *stream);int remove(const char *filename);以上是F函数中一些常用的函数,接下来我们将详细介绍它们的功能和使用方法。
1. fopen函数:该函数用于打开一个文件,并返回一个指向该文件的指针。
它接受两个参数,第一个参数是文件名,第二个参数是打开文件的模式。
常见的模式有"r"表示读取模式,"w"表示写入模式,"a"表示追加模式等。
如果打开文件成功,则返回一个指向该文件的指针;否则,返回NULL。
2. fclose函数:该函数用于关闭一个已打开的文件。
它接受一个参数,即要关闭的文件指针。
C语言math.h中常用函数
C语⾔math.h中常⽤函数1.绝对值2.取整和取余3.三⾓函数4.反三⾓函数5.双曲三⾓函数6.指数和对数7.标准化浮点数8.多项式9.数学错误计算处理1.绝对值函数原型: int abs(int x);函数功能: 求整数x的绝对值int number=-1234;abs(number);函数原型:double fabs(double x);函数功能:求浮点数x的绝对值.float number=-1234.0;fabs(number);函数原型:double cabs(struct complex znum)函数功能:求复数的绝对值参数说明:zuum为⽤结构struct complex表⽰的复数,定义如下:struct complex{double m;double n;}#include <stdio.h>#include <math.h>int main(){struct complex z;double val;z.x=2.0;z.y=1.0;val=cabs(z);printf("The absolute value of %.2lfi %.2lfj is %.2lf",z.x,z.y,val);return 0;}2.取整和取余函数原型: double ceil(double num)函数功能: 得到不⼩于num的最⼩整数函数返回: ⽤双精度表⽰的最⼩整数函数原型: double floor(double x);函数功能: 求出不⼤于x的最⼤整数.函数返回: 该整数的双精度实数函数原型:double fmod (double x, double y); 返回两参数相除x/y的余数,符号与x相同。
如果y为0,则结果与具体的额实现有关int main(){double number=123.54;double down,up;down=floor(number);up=ceil(number);printf("original number %10.2lf",number);//123.54printf("number rounded down %10.2lf",down); //123printf("number rounded up %10.2lf",up); //124return 0;}函数名称: modf函数原型: double modf(double val,double *iptr);函数功能: 把双精度数val分解为整数部分和⼩数部分,把整数部分存到iptr指向的单元.函数返回: val的⼩数部分参数说明: val 待分解的数所属⽂件: <math.h>使⽤范例:#include <math.h>#include <stdio.h>int main(){double fraction,integer;double number=100000.567;fraction=modf(number,&integer);printf("The whole and fractional parts of %lf are %lf and %lf",number,integer,fraction); return 0;}3.三⾓函数函数原型: double sin(double x);函数功能: 计算sinx的值.正弦函数函数原型: double cos(double x);函数功能: 计算cos(x)的值.余弦函数.函数原型: double tan(double x);函数功能: 计算tan(x)的值,即计算⾓度x的正切数值@函数名称: hypot函数原型: double hypot(double x,double y)函数功能: 已知直⾓三⾓形两个直⾓边长度,求斜边长度函数返回: 斜边长度参数说明: x,y-直⾓边长度所属⽂件: <math.h>#include <stdio.h>#include <math.h>int main(){double result;double x=3.0;double y=4.0;result=hypot(x,y);printf("The hypotenuse is: %lf",result);return 0;}4.反三⾓函数函数原型: double asin(double x);函数功能: 计算sin^-1(x)的值.反正弦值函数函数原型: double acos(double x);函数功能: 计算cos^-1(x)的值,反余弦函数函数原型: double atan(double x);函数功能: 计算tan^-1(x)的值.函数原型: double atan2(double x,double y);函数功能: 计算tan^-1/(x/y)的值.求x/y的反正切值.5.双曲三⾓函数函数原型: double sinh(double x);函数功能: 计算x的双曲正弦函数sinh(x)的值.函数原型: double cosh(double x);函数功能: 计算x的双曲余弦cosh(x)的值.函数原型: double tanh(double x);函数功能: 计算x的双曲正切函数tanh(x)的值.#include <stdio.h>#include <math.h>int main(){double result,x=0.5;result=sin(x);printf("The sin() of %lf is %lf",x,result);return 0;}#include <stdio.h>#include <math.h>int main(){double result;double x=0.5;result=cosh(x);printf("The hyperboic cosine of %lf is %lf",x,result);return 0;}6.指数和对数函数原型: double exp(double x);函数功能: 求e的x次幂函数原型: double fmod(double x,double y);函数功能: 求整数x/y的余数函数原型: double frexp(double val,int *eptr);函数功能: 把双精度数val分解为数字部分(尾数)x和以2为底的指数n,即val=x*2^n,n存放在eptr指向的变量中.函数名称: pow函数原型: double pow(double x,double y);函数功能: 计算以x为底数的y次幂,即计算x^y的值.函数返回: 计算结果参数说明: x-底数,y-幂数所属⽂件: <math.h>使⽤范例:#include <math.h>#include <stdio.h>int main(){double x=2.0,y=3.0;printf("%lf raised to %lf is %lf",x,y,pow(x,y));return 0;}函数原型: double sqrt(double x);函数功能: 计算x的开平⽅.函数返回: 计算结果参数说明: x>=0所属⽂件: <math.h>使⽤范例:#include <math.h>#include <stdio.h>int main(){double x=4.0,result;result=sqrt(x);printf("The square root of %lf is %lf",x,result);return 0;}//log(10) 以 e 为底的 10 的对数;log10(100) 以 10 为底的 100 的对数;如果要算别的对数 log(8) / log(2) 以 2 为底的 8 的对数;如果要计算⾃然常数 e exp(1);//函数原型: double log(double x);函数功能: 求logeX(e指的是以e为底),即计算x的⾃然对数(ln X)函数返回: 计算结果参数说明:所属⽂件: <math.h>使⽤范例:#include <math.h>#include <stdio.h>int main(){double result;double x=8.6872;result=log(x);printf("The natural log of %lf is %lf",x,result);return 0;}函数名称: log10函数原型: double log10(double x);函数功能: 求log10x(10指的是以10为底).计算x的常⽤对数函数返回: 计算结果参数说明:所属⽂件: <math.h>使⽤范例:#include <math.h>#include <stdio.h>int main(){double result;double x=800.6872;result=log10(x);printf("The common log of %lf is %lf",x,result);return 0;}#include <stdio.h>#include <math.h>int main(){double result;double x=4.0;result=exp(x);printf("'e' raised to the power of %lf(e^%lf)=%lf",x,x,result);return 0;}#include <math.h>#include <stdio.h>int main(){double mantissa,number;int exponent;number=8.0;mantissa=frexp(number,&exponent);printf("The number %lf is",number);printf("%lf times two to the",mantissa);printf("power of %d",exponent);return 0;}7.标准化浮点数函数原型:double modf (double x, double *ip);函数功能:将参数的整数部分通过指针回传, 返回⼩数部分,整数部分保存在*ip中函数原型: double ldexp(double x,int exponent)函数功能: 计算x*2的exponent次幂,即2*pow(2,exponent)的数值#include <stdio.h>#include <math.h>int main(){double value;double x=2;value=ldexp(x,3);printf("The ldexp value is: %lf",value);return 0;}8.多项式函数名称: poly函数原型: double poly(double x,int degree,double coeffs[])函数功能: 计算多项式函数返回: 多项式的计算结果参数说明: 计算c[n]*x^n+c[n-1]x^n-1+.....+c[1]*x+c[0]所属⽂件: <math.h>#include <stdio.h>#include <math.h>int main(){double array[]={-1.0,5.0,-2.0,1.0};double result;result=poly(2.0,3,array);printf("The polynomial: x**3 - 2.0x**2 + 5x - 1 at 2.0 is %lf",result);return 0;}9.数学错误计算处理@函数名称: matherr函数原型: int matherr(struct exception *e)函数功能: 数学错误计算处理程序函数返回:参数说明: 该函数不能被直接调⽤,⽽是被库函数_matherr()调⽤所属⽂件: <math.h>#include<math.h>int matherr(struct exception *a){return 1;}原⽂:https:///weibo1230123/article/details/81352581。
c语言中的puts函数的作用
c语言中的puts函数的作用
C语言中的puts函数用于向标准输出(通常是显示器)打印字符串。
它会自动在字符串末尾添加换行符,并将字符串输出到屏幕上。
puts函数的原型为int puts(const char str),其中str是要输出的字符串。
puts函数会返回一个非负值以表示成功,或者返回EOF以表示失败。
从功能上来说,puts函数与printf函数有些类似,但puts函数专门用于输出字符串,并且会自动添加换行符,而printf函数可以用于格式化输出各种类型的数据。
另外,puts函数在输出字符串后会自动刷新输出缓冲区,因此不需要像printf函数那样使用\n来换行并且调用fflush函数来刷新缓冲区。
需要注意的是,puts函数只能用于输出字符串,而不能用于输出其他类型的数据。
另外,puts函数在输出过程中会自动将字符串以换行符结尾,因此如果不希望换行,就不适合使用puts函数。
总之,C语言中的puts函数主要用于向标准输出打印字符串,并且自动添加换行符,是一个方便的字符串输出函数。
c语言floor函数的用法
三、floor函数的使用方法
1.函数原型
floor函数接受一个参数x,返回不大于x的最大整ቤተ መጻሕፍቲ ባይዱ值,并以double类型输出结果。
2.引入头文件
为了使用floor函数,需要在代码中引入<math.h>头文件。
3.示例代码
下面是一个示例代码片段,展示了如何使用floor函数:
```c
#include <stdio.h>
#include <math.h>
int main() {
double num = 4.8;
double result = floor(num);
printf("The largest integer less than or equal to %.1f is %.1f\n", num, result);
3.数学运算:在某些算法中,需要对浮点数进行向下取整操作来得到精确的运算结果。
六、总结
通过本文的介绍,我们了解了C语言中floor函数的定义和用法。它是一个非常有用的数学函数,能够方便地实现向下取整的功能。无论是在金融计算还是数据处理中,都可以使用该函数来满足各种不同场景下的需求。大家可以根据自己的具体情况合理应用这个函数,并深入学习其他相关的数学函数以扩展对C语言的理解和应用能力。
c语言floor函数的用法
一、概述
C语言是一种广泛应用于系统开发和嵌入式系统编程的高级编程语言。在C语言中,floor函数是一个常用的数学函数,它用于向下取整。本文将详细介绍floor函数的用法及示例。
二、floor函数的定义
在数学上,floor(x)表示不大于x的最大整数。在C语言中,<math.h>头文件中的floor函数可以实现这一功能。其定义如下:
c语言函数取名
c语言函数取名C语言函数是C语言程序中的基本组成单元,它通过封装一段特定的功能代码,提供给其他部分调用。
函数的命名应该具有描述性,能够清晰地表达函数的作用和功能。
下面将介绍几个常见的C语言函数及其功能。
1. printHelloWorld()printHelloWorld函数的作用是打印输出"Hello, World!"这个字符串。
这是C语言程序中常用的一个函数,用于验证程序是否能正常运行。
在实际应用中,可以用printHelloWorld函数来测试输出功能,或者作为程序的入口点。
2. calculateSum(int a, int b)calculateSum函数用于计算两个整数a和b的和,并将结果返回。
通过传入不同的参数,可以在不同的场景下使用该函数。
例如,可以计算两个数的和,或者将计算结果赋值给其他变量。
3. isPrimeNumber(int n)isPrimeNumber函数用于判断一个整数n是否为素数。
该函数根据素数的定义,通过遍历判断n是否能被2到n-1之间的任意整数整除,若能整除则不是素数,若不能整除则是素数。
isPrimeNumber 函数可以应用于数论、密码学等领域。
4. swap(int *a, int *b)swap函数用于交换两个整数的值。
通过传入两个指针参数,函数可以通过指针操作来实现两个变量的值交换。
swap函数在排序算法、数组操作等场景中经常被使用,能够提高代码的可读性和代码重用性。
5. calculateFactorial(int n)calculateFactorial函数用于计算一个整数n的阶乘。
该函数通过递归的方式,将问题拆解为逐个乘法运算,直到达到基本情况(n=0或n=1)时返回结果。
calculateFactorial函数在组合数学、排列组合等领域有广泛应用。
6. findMax(int arr[], int length)findMax函数用于找出一个整型数组arr中的最大值,并将其返回。
C语言中的数学库函数及其应用
C语言中的数学库函数及其应用C语言是一种通用性极强的编程语言,被广泛应用于科学计算、图形处理、嵌入式系统等领域。
而数学库函数则是C语言中重要的组成部分,它提供了一系列数学相关的函数,为程序员提供了方便与便利。
本文将探讨C语言中的数学库函数及其应用,带您深入了解C语言中的数学计算能力。
一、数学库函数的分类在C语言中,数学库函数主要分为以下几类:1. 基础数学函数:包括常见的四则运算、幂函数、开方函数等。
2. 三角函数:包括正弦、余弦、正切等三角函数。
3. 指数与对数函数:包括指数函数、对数函数等。
4. 双曲函数:包括双曲正弦、双曲余弦等。
5. 随机数函数:用于生成随机数的函数。
6. 其他特殊函数:包括阶乘函数、绝对值函数等。
二、数学库函数的应用1. 常见数学计算数学库函数可以用于执行常见的数学计算,如利用基础数学函数进行加减乘除运算,利用幂函数进行指数运算。
例如,可以使用pow函数计算2的平方、立方、四次方等。
另外,还可以使用sqrt函数计算一个数的平方根,使用fabs函数计算一个数的绝对值。
2. 三角函数的应用三角函数在科学计算中广泛应用。
通过使用sin、cos、tan等三角函数,可以实现角度与弧度之间的转换,以及各种三角函数值的计算。
在图形处理、信号处理等领域,三角函数的应用尤为重要。
例如,在图像旋转中,可以利用sin和cos函数计算旋转角度的正弦值和余弦值,从而实现图像的旋转变换。
3. 指数与对数函数的应用指数与对数函数在科学计算与数据处理中具有重要作用。
指数函数可以用于模拟自然增长过程,对于金融领域的复利计算、生态系统的模拟等都起到了关键作用。
对数函数则可以用于解决各类指数增长的问题,如寻找恒定增长率和解决指数方程等。
4. 随机数函数的应用随机数函数在模拟、游戏设计、密码学等领域有着广泛的应用。
C语言提供了一系列随机数生成函数,如rand和srand。
通过使用这些函数,我们可以生成满足特定要求的随机数序列,以实现模拟实验、游戏随机性、密码加密等功能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言中常见的功能函数(应掌握的编程)1、两个变量值的交换void exchang(float *x,float *y) /*形参为两个变量的地铁(指针)*/{float z;z=*x; *x=*y; *y=z;}void main(){float a,b;scanf(“%f%f”,&a,&b);exchang(&a,&b); /*因为形参是指针,所以实参必须给变量的地址,不能给变量名*/ printf(“a=%f,b=%f”,a,b);}2、判断一个整数的奇偶int jou(int n) /*如果是奇数返回1,否则返回0*/{if(n%2==0) return 0;return 1;}3、小写字符转换成大写字符根据实参传给形参的字母,判断是否是小写字母,如果是小写字母,则转换成大写字母,否则不进行转换,函数返回转换后或原来的字符。
本函数仿照toupper()库函数的功能编写(toupper(c) 是将变量c字母转换成大写字母,如果不是小写字母不转换)。
char toupper1(char ch){if(ch>=’a’&&ch<=’z’) ch-=32; /*小写字母比对应的大写字母ASCII码值大32*/ return ch;}4、判断一个字符是否是字母(或数字)根据实参传给形参的字符,判断是否是字母(或数字),如果是字母(或数字)返回1,否则返回0。
此函数是根据库函数isalpha()(或isdigit())来编写的。
int isalpha1(char ch) /*判断是否是字母*/{if(ch>=’A’&&ch<=’Z’||ch>=’a’&&ch<=’z’) return 1;else return 0;}int isdigit1(char ch) /*判断是否是数字字符*/{if(ch>=’0’&&ch<=’9’) return 1;else return 0;}5、根据学生成绩,返回其等级char fun(float cj){char c;switch((int)cj/10){case 10:case 9:c=’A’; break;case 8:c=’B’; break;case 7:c=’C’; break;case 6:c=’D’; break;default: c=’E’}return c;}6、求1+2+….+n(1)用循环int sum(int n){int i;for(i=1;i<=n;i++) s+=i;}(2)使用递归long sum(int n){if(n==1) return 1;else return sum(n-1)+n;}根据本题扩展:求s=1+(1+2)+ (1+2+3)+….+(1+2+…+n)void main(){long s=0,s1=0; int i,n;scanf(“%d”,&n);for(i=1;i<=n;i++){s1+=i; /*计算出每一项的值,通过累加得到*/ s+=s1; /*将每一项的值累加到结果中去*/ }printf(“s=%ld”,s);}7、求n!(1)用循环long jiec(int n){int i; long s=1;for(i=1; i<=n; i++) s*=i;return s;}(2)使用递归long jiec(int n){if(n==1) return 1;else return jiec(n-1)*n;}根据本题扩展:求s=1!+2!+ 3!+….+n! n的值最好不要太大void main(){long s=0,s1=1; int i,n;scanf(“%d”,&n); /*输入n的值不要太大,否则结果long型存不下,输出时会输出一个负数*/for(i=1;i<=n;i++){s1*=i; /*计算出每一项的值,通过累乘得到*/s+=s1; /*将每一项的值累加到结果中去*/}printf(“s=%ld”,s);}8、求某整数的因子之和int inz(int n) /*计算数n的因子之和(包括1和n本身),函数返回因子之和*/{int s=0,i;for(i=1;i<=n; i++) /* 通过本循环,将1-n的数一个一个拿来看是否能被n整除,如果是真因子的话,就不包括1和n本身*/if(n%i==0) s+=i; /*一个数的因子,就是能被其整除的数*/return s;}9、判断一个整数是否是素数int ss(int n) /*如果是素数返回1,否则返回0*/{int i;for(i=2; i<n/2; i++)if(n%i==0) return 0;return 1;}10、求一个整数的反序数long fxs(long n) /*函数返回反序数,形参需要原来的数*/{long fan=0;while(n!=0){fan=fan*10+n%10;n/=10;}return fan;}11、判断一个数是否是回文数long hw(long n) /*如果是回文数函数返回1,否则返回0*/{long fan=0,m=n;while(n!=0){fan=fan*10+n%10;n/=10;}if(fan==m) return 1;else return 0;}12、判断一个数是否是水仙花数int sxh(long n) /*判断任意位数的整数是否是水仙花数,是水仙花数返回1,不是返回0*/ {long g,i,s=0,m=n;while(n!=0) /*通过本循环语句,将数n从个位数字开始一个个位数的数字的立方累加到变量s中*/{g=n%10;s=g*g*g;n/=10;}if(s==m) return 1;else return 0;}13、计算x的y次方本函数用于计算x的y次方(x,y为整型,函数返回值为long型)。
仿照库函数pow()(pow(x,y)是用于计算x的y次方的库函数,不过该函数的形参x,y和返回值均为double类型)编写。
long pow1(int x,int y){long s=1; int i;for(i=1;i<=y;i++) /*将变量x的值累乘y次*/s*=x; /*每次将上次累乘的结果再乘以x*/return s;}14、计算n个n(n为一位十进制数)本函数用于计算n个n的值,比如:333(3个3),4444(4个4)。
long mm(int n) /*n为一个十进制数字*/{int i; long s=0;for(i=1;i<=n;i++){s=s*10+n;}return s;}本函数可以应用于这样的题目:求s=1-1/22+1/333-1/4444+1/55555-1/666666主函数可以写成:void main(){double s=0; int i,sign=1; /*sign用来处理每项的符号(正或负)*/for(i=1; i<=6; i++){s+=sign*1.0/mm(i); /*因为mm()函数返回的值是长整型,所以必须用1.0,而不能用1,因为整型除以整型,结果是整型*/sign=-sign; /*每次变换一下sign的符号(正或负)*/}}这样的题目包括:求s=a+aa+aaa+aaaa+…aa..aa(n个a),a和n都在1-9之间。
long fun(int a,int n){long s=0,t=0; int i;for(i=1;i<=n;i++){ t=t*10+a;s+=t;}return s; /*或者return(s); */}15、求两个整数的最大公约数(1)辗转相除法int fun(int m,int n){int t,r;if(m<n) {t=m;m=n;n=t;} /*保证m>n,如果m<n,则交换两个变量的值*/r=m%n;while(r!=0){m=n; n=r;r=m%n;}return n; /*n为最大公约数*/}(2)穷举法(按数学定义)int fun(int m,int n) /*此方法可以求多个数的最大公约数*/{int i,min,gys;if(m<n) min=m; /*找出两个数中的最小数*/else min=n;for(i=1; i<min; i++){if(m%i==0&&n%i==0) gys=i;}return gys;}16、计算Fibonacci数列的第n项本函数完成的功能:计算出该数列的第n项的值,并返回。
递归方法long fbnc(long n){if(n==1||n==2) return 1;else return fbnc(n-1)+fbnc(n-2); /*从第三项开始,后一项是前面两项之和*/}17、数组的输入一维数值型数组的输入:void intput1(float a[], int n) /*n为数组a中元素的个数,此函数以float型数组为例*/ {int i;for(i=0;i<n; i++) scanf(“%f”,&a[i]);}二维数值型数组的输入:void intput2(float a[][3], int n) /*n为数组a中元素的行数,此函数以float型数组为例,形参定义时,如果是二维数组,则第二维(列)的数字不能少,比如本例中的3*/{int i,j;for(i=0;i<n; i++) /*表示行的外循环*/for(j=0;j<3;j++) /*表示列的内循环*/scanf(“%f”,&a[i][j]);}18、数组的输出一维数值型数组元素的输出:void output1(float a[], int n) /*n为数组a中元素的个数,此函数以float型数组为例*/{int i;for(i=0;i<n; i++) printf(“%10.2f”,a[i]);}二维数值型数组元素的输出:void output2(float a[][3], int n) /*n为数组a中元素的行数,此函数以float型数组为例,形参定义时,如果是二维数组,则第二维(列)的数字不能少,比如本例中的3*/{int i,j;for(i=0;i<n; i++) /*表示行的外循环*/{ for(j=0;j<3;j++)printf(“%11.2f”,a[i][j]);printf(“\n”); /*按行输出,所以每一行输出后,输出一个换行符*/}}19、二分查找/*在有序数组a中查找值为x的,找到返回找到的数下标,没找到返回-1*/int find(float a[],float x,int n) /*有序数组a中的数是从小到大,n为数组中数的个数*/ {int low,high,mid;low=0; high=n-1;while(high>=low){mid=(low+high)/2;if(a[mid]==x) {return mid; }else if(a[mid]>x) high=mid-1;else low=mid+1;}return -1;}20、冒泡排序/*对存放在数组a中的n个数进行排序,(或者对从地址a开始的n个数进行排序),排序是从小到大)*/void sort1(int a[],int n){int i,j,t;for(i=0;i<n-1;i++) /*排序趟数*/{for(j=0;j<n-1-i; j++)if(a[j]>a[j+1]) /*从小到大排序,如果是从大到小排序,则将大于号改成小于号*/{t=a[j]; a[j]=a[j+1]; a[j+1]=t; } /*不符合小到大的进行交换*/}}21、直接选择排序void sort1(int a[],int n) /*对以地址(指针)a开始的n个数,按从小到大进行排序*/{int i,j,k,t;for(i=0;i<n-1;i++) /*排序趟数*/{k=i;for(j=i+1;j<n-1-i; j++)if(a[j]<a[k]) k=j; /*从小到大排序,如果是从大到小排序,则将大于号改成小于号*/ if(k!=i){t=a[i]; a[i]=a[k]; a[k]=t; } /*如果找的极值不在下标为i,则进行交换*/}}22、求字符串长度本函数是仿照库函数strlen()的功能编写的。