c语言头文件instr,C/C++常用函数合集「建议收藏」

目录C标准库头文件1.memset()2.memcpy()3.strcpy()4.strncpy()5.strcat()6.getline()7.strlen()头文件1.tolower()/toupper()2.isalpha(),isdigit(),isprint()头文件1.pow()2.floor()3.ceil()4.atan()STL头文件1.min(),max()函数2.lower_…

大家好,又见面了,我是你们的朋友全栈君。

目录

C标准库

头文件

1.memset()

2.memcpy()

3.strcpy()

4.strncpy()

5.strcat()

6.getline()

7.strlen()

头文件

1.tolower()/toupper()

2.isalpha(),isdigit(),isprint()

头文件

1.pow()

2.floor()

3.ceil()

4.atan()

STL

头文件

1.min(),max()函数

2.lower_bound()

3.upper_bound()

4.next_permutation()/prev_permutation()

6.Sort()

7.fill()

8.reverse()

C标准库

头文件

1.memset()

函数原型:memset(void *s , int c , size_t n)

作用:将已开辟内存空间s的首n个字节的值设置为c。一般用于在对字符串进行初始化为‘\0’或‘ ’

注意:1.s为首地址,c为要赋予的字符,n为长度

2.一般不用于初始化数字数组

代码示例:

#include

#include

int main(){

char str[5]={‘1′,’2′,’3′,’4′,’5’};

printf(“原始字符数组:”);

for(int i=0;i<5;i++)

printf(“%c “,str[i]);

printf(“\n”);

//    内存初始化

memset(str,’\0′,5);

printf(“初始化后的字符数组:”);

for(int i=0;i<5;i++)

printf(“%c “,str[i]);

return 0;

}

2.memcpy()

函数原型:void *memcpy(void *dest, const void *src, size_t n);

作用:将以src开头,长度为n的内存空间里的内容拷贝到以dest开头的内存空间里去。

例:

char a[100],b[50];

memcpy(b,a,sizeof(b)); //将a的sizeof(b)个元素赋给b

注意:如果用sizeof(a),会造成b的内存地址溢出。

3.strcpy()

函数原型:char *strcpy(char* dest, const char *src);

作用:把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间

例:

char a[100],b[50];

strcpy(a,b);

注意:遇到‘\0’时就结束拷贝。

4.strncpy()

函数原型:strncpy(char* dest,const char* src,int n)

作用:把src所指的字符串中以src地址开始的前n个字节复制到dest所指的空间中,并返回dest。

注意:1.结果dest不包括结束符NULL(‘\0’)

2.如果src的长度小于n个字节,则以NULL填充dest直到复制完n个字节

代码示例

#include

#include

using namespace std;

int main(){

char s[] = {“hello”};

char s2[10];

cout<

return 0;

}

5.strcat()

函数原型:char *strcat(char *dest, const char *src);

作用:将两个char类型数组相连,结果放在dest中,返回拼接后指向dest的指针。

代码示例

#include

#include

using namespace std;

int main(){

char s[] = {“hello”};

char s2[10];

//    将s2数组赋空字符

memset(s2,’\0′,10);

//    连接字符数组s和s2

strcat(s2,s);

for(int i=0;i<10;i++){

cout<

}

return 0;

}

6.getline()

函数原型:istream& getline ( istream &is , string &str , char delim );

参数解释

is进行读入操作的输入流,常用cinstr已声明的用于存储读入内容的对象,常为string类型delim终结符

作用:将输入流is中读到的字符存入str中,直到遇到终结符delim才结束。如果没有定义delim,则默认为 ‘\n'(换行符)。

注意:getline遇到delim时停止读入(但读入了delim),然后将所读内容存储到string对象中(不存delim)下次读入操作时,将在delim的下个字符开始读入。

代码示例:

#include

#include

int main(){

string str;

getline(cin,str,’o’);

printf(“%s”,str.c_str());  // string类型字符串不能直接使用printf输出,需要调用string中的c_str()函数

}

7.strlen()

函数原型:size_t strlen(const char *string);

作用:计算string字符串或者以char *声明的字符数组的长度。

头文件

1.tolower()/toupper()

作用:改变字母大小写

例:

char n=’h’;

cout<

注意:n的值并没有改变,仍然为‘h’。

2.isalpha(),isdigit(),isprint()

作用:用来对是否是字母,数字,可打印字符(非控制字符)进行判断

头文件

1.pow()

函数原型:double pow(double x, double y)

作用:返回x的y次方

2.floor()

函数原型:double floor(double x);

作用:用于输出浮点类型中小于此数的最大整数

注:floor(n+0.5)可用于进行四舍五入的处理

3.ceil()

函数原型:double ceil(double x);

作用:用于输出浮点类型中大于此数的最小整数

4.atan()

作用:用来求π的值:atan(1)=π/4    π=4.0*atan(1)

代码示例:

#include

#include

using namespace std;

// 求π的值,保留小数点后15为小数

int main(){

double pi = 4*atan(1);

printf(“%.15f”,pi);     //保留π后的十五位小数

}

运行结果:

STL

头文件

1.min(),max()函数

作用:返回两个元素中最小(最大)的一个

2.lower_bound()

函数原型:lower_bound(int* first,int* last,int val);

作用:查找有序区间[first,last]中第一个大于等于val的位置

代码示例:

#include

#include

using namespace std;

int main(){

int n[10];

for(int i=0;i<10;i++)

n[i]=i;

cout<

cout<

return 0;

}

运行结果:

3.upper_bound()

作用:大致和lower_bound()相同,不过查找的是有序区间[first,last]中第一个大于x的位置

4.next_permutation()/prev_permutation()

格式:next_permutation(数组名,数组名+数组长度)

作用:将数组的排序改为当前数组全排列的下/上一个

返回值:若当前数组存在下/上一个全排列,则返回ture,否则返回false。

解释:假设数组为a,b,c。则该数组的全排列为abc,acb,bac,bca,cab,cba。若当前数组为bac,则其全排列的上一个数组即为acb,下一个数组为bca

注意:若要求数组所有的全排列,需要将数组进行升序排列,否则只能找出该序列之后的全排列数。

代码示例:

#include

#include

using namespace std;

//输出abc的全排列

int main(){

char ans[3]={‘a’,’b’,’c’};

do{

for(int i=0;i<3;++i)

cout<

cout<

}while(next_permutation(ans,ans+3));

return 0;

}

运行结果:

6.Sort()

函数原型:void sort(RanIt first, RanIt last, Pred pr);

参数解释

first指向容器首地址的指针(数组名)last指向容器尾地址的指针(数组名+数组长度)pr比较方法(默认为升序)

具体用法:

sort(begain,end,less())   升序

sort(begain,end,greater()) 降序

注意:开始和结尾用的都是指针

示例代码:

#include

#include

using namespace std;

int main(){

char ch[5]={‘e’,’a’,’c’,’b’,’d’};

cout<

//     升序排列

sort(ch,ch+5);

cout<

//     降序排列

sort(ch,ch+5,greater());

cout<

return 0;

}

运行结果:

7.fill()

函数原型:void fill(first,last,val);

参数解释

first起始地址last末尾地址val将要替换的值

作用:可将数组的值初始化成指定值

例如:

1.初始化一维数组

int a[10];

fill(a,a+10,80);

2.初始化二维数组

int a[10][10];

fill(a[0],a[0]+10*10,90);

8.reverse()

函数原型:void reverse (BidirectionalIterator first, BidirectionalIterator last)

作用:将[first,last)范围内的字符顺序反转

代码示例:

#include

#include

#include

using namespace std;

int main ()

{

char s1[10]=”hello”;

string s2=”world”;

cout<

cout<

//    reverse的使用

reverse(s1,s1+strlen(s1));

reverse(s2.begin(),s2.end());

cout<

cout<

}

运行结果:

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/126713.html原文链接:https://javaforall.net

(0)
上一篇 2022年4月8日 下午2:40
下一篇 2022年4月8日 下午3:00


相关推荐

  • ILSVRC2015_VID数据集说明

    ILSVRC2015_VID数据集说明参考 https blog csdn net weixin article details 数据主页 http bvisionweb1 cs unc edu ilsvrc2015 download videos 3j16 php vid 数据下载 http bvisionweb1 cs unc edu ilsvrc2015 ILSVRC2015 VID tar gz

    2026年3月26日
    2
  • java指令重排_jvm指令重排

    java指令重排_jvm指令重排引言:在Java中看似顺序的代码在JVM中,可能会出现编译器或者CPU对这些操作指令进行了重新排序;在特定情况下,指令重排将会给我们的程序带来不确定的结果…..1.什么是指令重排?在计算机执行指令的顺序在经过程序编译器编译之后形成的指令序列,一般而言,这个指令序列是会输出确定的结果;以确保每一次的执行都有确定的结果。但是,一般情况下,CPU和编译器为了提升程序执行的效率,会按照一定的规则允…

    2022年10月18日
    4
  • 学习shiro框架记的一次随笔

    学习shiro框架记的一次随笔

    2021年7月12日
    71
  • 通达OA 小飞鱼开发培训第四讲 工作流介绍(图文)[通俗易懂]

    通达OA 小飞鱼开发培训第四讲 工作流介绍(图文)

    2022年1月27日
    53
  • DDR2 ODT_ddr vtt电压

    DDR2 ODT_ddr vtt电压

    经常有人会说支持DDR2的主板存在偷工减料的现象。事实上这是由于DDR2内存中使用了一项新的ODT技术,它可以在提高内存信号稳定性的基础上节省不少电器元件(个人想法:ODT会增加功耗的阿)。主板终结是一种最为常见的终结主板内干扰信号的方法。在每一条信号传输路径的末端,都会安置一个终结电阻,它具备一定的阻值可以吸收反射回来的电子。但是目前DDR2内存的工作频率太高了,这种主板终结的方法并不能有效的阻止干扰信号。若硬要采用主板终结的方法得到纯净的DDR2时钟信号会花费巨额的制造成本。

    2025年10月13日
    4
  • astah java版本_astah professional

    astah java版本_astah professional可以 JAVA 导成 UML UML 导出 JAVA 支持 UML2 0 好像是部分支持 JUDE 改名后叫 astah 但 astah 的社区版 好多功能移到了 astah 的收费版 可在所以免费版本中功能也强大 强大到完全够用 astah community6 0 后 astah 增加很多的特性 Mind java c c c 代码导入导出等 以前 JUDEcommunit 5 的重要功能在 astah c

    2026年3月20日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号