CC++常⽤函数合集
⽬录
C标准库
<string.h>头⽂件
1. memset()
2. memcpy()
3. strcpy()
4. strncpy()
5. stract()
6. getline()
7. strlen()
<ctype.h>头⽂件
1. tolower()/toupper()
2. isalpha()、isdigit()、isprint()
<math.h>头⽂件
1. pow()
2. floor()
3. atan()
STL
头⽂件
1. min(),max()函数
2. lower_bound()
3. upper_bound()
4. next_permutation()/prev_permutation()
5. Sort()
6. fill()
C标准库
<string.h>头⽂件
函数原型: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]);
return0;
}
函数原型: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()
c++string类型函数原型: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个字节
5.stract()
函数原型:char *strcat(char *dest, const char *src);
作⽤:将两个char类型数组相连,结果放在dest中,返回拼接后指向dest的指针。
函数原型: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>头⽂件
作⽤:改变字母⼤⼩写
例:
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.atan()
作⽤:⽤来求π的值:atan(1)=π/4 π=4.0*atan(1)
代码⽰例:
// 求π的值,保留⼩数点后15为⼩数
int main(){
double pi =4*atan(1);
printf("%.15f",pi);//保留π后的⼗五位⼩数
}
STL
头⽂件
1.min(),max()函数
作⽤:返回两个元素中最⼩(最⼤)的⼀个
2.lower_bound()
函数原型:lower_bound(int* first,int* last,val);
作⽤:查有序区间[first,last]中第⼀个⼤于等于x的位置
代码⽰例:
#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;
return0;
}
3.upper_bound()
作⽤:⼤致和lower_bound()相同,不过查的是有序区间[first,last]中第⼀个⼤于x的位置
<_permutation()/prev_permutation()
格式:next_permutation(数组名,数组名+数组长度)
作⽤:
将数组的排序改为当前数组全排列的下/上⼀个
返回值:
若当前数组存在下/上⼀个全排列,则返回ture,否则返回false。
解释:
假设数组为a,b,c。则该数组的全排列为abc,acb,bac,bca,cab,cba。若当前数组为bac,则其全排列的上⼀个数组即为acb,下⼀个数组为bca
注意:
若要求数组所有的全排列,需要将数组进⾏升序排列,否则只能出该序列之后的全排列数。
代码⽰例:
//输出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));
return0;
}
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;
return0;
}
7.fill()
函数原型:void fill(first,last,val);
参数解释
first 起始地址
last 末尾地址
val 将要替换的值
作⽤:可将数组的值初始化成指定值
例如:
1.初始化⼀维数组
int a[10];
fill(a,a+10,80);
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论