目录

C标准库

<string.h>头文件

1.memset()​

2.memcpy()

3.strcpy()

4.strncpy()

5.strcat()

6.getline()

7.strlen()

<ctype.h>头文件

1.tolower()/toupper()

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

<math.h>头文件

1.pow()

2.floor()

3.ceil()

4.atan()

STL

<algorithm>头文件

1.min(),max()函数

2.lower_bound()

3.upper_bound()

4.next_permutation()/prev_permutation()

6.Sort()

7.fill()

8.reverse()


C标准库

<string.h>头文件

1.memset()

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

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

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

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

代码示例:

#include<stdio.h>
#include<string.h>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<iostream>
#include<string.h>
using namespace std;int main(){char s[] = {"hello"};char s2[10];cout<<strncpy(s2,s,9);return 0;
}

5.strcat()

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

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

代码示例

#include<iostream>
#include<string.h>
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<<s2[i];}return 0;
}

6.getline()

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

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

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

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

代码示例:

#include<stdio.h>
#include<string.h>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 *声明的字符数组的长度。

<ctype.h>头文件

1.tolower()/toupper()

作用:改变字母大小写

例:

char n=’h’;
cout<<(char)toupper(n);      //输出结果为‘H’

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

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

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

<math.h>头文件

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<iostream>
#include<math.h>
using namespace std;// 求π的值,保留小数点后15为小数
int main(){double pi = 4*atan(1);printf("%.15f",pi);     //保留π后的十五位小数
}

运行结果:

STL

<algorithm>头文件

1.min(),max()函数

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

2.lower_bound()

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

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

代码示例:

#include<iostream>
#include<algorithm>
using namespace std;int main(){int n[10];for(int i=0;i<10;i++)n[i]=i;cout<<"第一个大于等于7的位置:"<<lower_bound(n,n+9,7)<<endl;cout<<"该位置上的值:"<<*lower_bound(n,n+9,7)<<endl;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<iostream>
#include<algorithm>
using namespace std;//输出abc的全排列
int main(){char ans[3]={'a','b','c'};do{for(int i=0;i<3;++i)cout<<ans[i]<<" ";cout<<endl;}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<iostream>
#include<algorithm>
using namespace std;int main(){char ch[5]={'e','a','c','b','d'};cout<<"原字符数组为:"<<ch<<endl;
//   升序排列 sort(ch,ch+5);cout<<"升序排列后为:"<<ch<<endl;
//   降序排列 sort(ch,ch+5,greater<char>());cout<<"降序排列后为:"<<ch<<endl;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 <iostream>
#include<algorithm>
#include<cstring>
using namespace std; int main ()
{ char s1[10]="hello";string s2="world";cout<<s1<<endl;cout<<s2<<endl;//  reverse的使用 reverse(s1,s1+strlen(s1));reverse(s2.begin(),s2.end());cout<<s1<<endl; cout<<s2<<endl;
}

运行结果:

C/C++常用函数合集相关推荐

  1. 【Python常用函数合集】clip函数、range函数等

    你应该听说过,应用Python,可以让你处理一天的重复工作量,缩短到几分钟甚至更短.从此解放上班时间,研究更多更有效率的工作方法.进一步提升工作效率,让工作更出彩.这不是广告,这是实锤图片.    本 ...

  2. SQL基础常用函数合集

    AVG avg()函数是一个聚合函数(聚合函数:对一组值执行计算并返回单一的值的函数,常见的有sum.max.min.count等),用于计算从select语句中返回的数值数据集的平均值. 牛客.SQ ...

  3. argmax函数_Python之Numpy库常用函数合集(附注释)

    文末免费领取[亚马逊.阿里巴巴股票数据] 最近学习Python,才发现原来python里的各种库才是大头!于是乎找了学习资料对Numpy库常用的函数进行总结,并带了注释.在这里分享给大家,对于库的学习 ...

  4. Vs + Qt 界面设计常用函数合集

    下面主要介绍一些在进行 Qt 界面设计时  SetWindows.. 开头的一些常见函数!!! 持续更新中...... 1.setWindowContextHelpld 2.setWindowDisp ...

  5. Javascript常用API合集

    常用API合集 一.节点 1.1 节点属性 Node.nodeName //返回节点名称,只读 Node.nodeType //返回节点类型的常数值,只读 Node.nodeValue //返回Tex ...

  6. 一、PyTorch Cookbook(常用代码合集)

    PyTorch Cookbook(常用代码合集) 原文链接:https://mp.weixin.qq.com/s/7at6y2NcYaxGGN8syxlccA 谢谢作者的付出.

  7. 常用正则表达式合集与工具

    any-rule 维护了一个常用正则表达式合集,并且本身是一个支持 Web/VS Code/idea/Alfred Workflow 多平台的正则表达式工具. image 安装 VS Code 应用商 ...

  8. Python 数据分析三剑客之 NumPy(五):数学 / 算术 / 统计 / 排序 / 条件 / 判断函数合集

    CSDN 课程推荐:<Python 数据分析与挖掘>,讲师刘顺祥,浙江工商大学统计学硕士,数据分析师,曾担任唯品会大数据部担任数据分析师一职,负责支付环节的数据分析业务.曾与联想.亨氏.网 ...

  9. anki 新的卡片类型_Anki 常用操作方法合集(一)常用操作1

    本文侧重于一些Anki的常用操作方法的整理,操作方法通用于全平台(非教程本文)不适用于老手. 如果你是彻头彻尾的新手请跳转自 <Anki 常用操作方法合集(二)>的第一有很好的详细教程推荐 ...

最新文章

  1. java结束全部操作代码_Java创建与结束线程代码示例
  2. linux怎么注册信息,linux device注册
  3. [ERROR] bower xxx解决方案
  4. HBase详细的安装和使用方法
  5. java文件名命名的规则,Java文件名及其他命名规则
  6. asp.net模板控件示例
  7. 每个选项设置上限的投票_使用Redis有序集合实现投票排行榜系统
  8. ViolinMemory上市遇低迷 唱衰闪存为哪般?
  9. 【PostgreSQL-9.6.3】表空间
  10. 16 寸MacBook Pro比14 寸风扇更强大,更耐用
  11. 解决eclipse中svn插件总是提示输入密码的问题
  12. 2017-2018论文更新
  13. 疯狂Java讲义(阅读笔记)(第一章)
  14. 扩展 MQL5 标准库和重用代码
  15. 彻底解决mac os 下javac Java命令行工具乱码问题
  16. 压六类双绞线网线水晶头,
  17. mumu模拟器崩坏3分辨率_网易mumu模拟器设置崩坏3不卡的方法
  18. 华为RH2288 V3分区并装系统
  19. python车牌识别系统抬杆_车牌识别系统识别到道闸不抬杆是什么问题?
  20. 如何群发邮件不进垃圾邮箱?群发邮件进了垃圾箱怎么办?

热门文章

  1. 二维对象,根据最里面的子对象的属性,来过滤,获取新的对象
  2. Android获取通话记录的未接来电、自定义通知栏事件处理
  3. 内衣罩杯,A`B`C`D`的真正含义
  4. 葫芦书笔记----采样
  5. 常用转换工具:时间,周期,频率 dBm,VPP,mW
  6. C#窗体程序通过泛型List实现账号登录、账号注册、账号注销、修改密码(不定时更新)
  7. iphone计算机显示过程,iPhone将屏幕同步到电脑上的操作方法
  8. liunx 谷歌浏览器清空缓存命令
  9. 解决win10电脑图标变白的问题
  10. Xcode Executable Not Found