1 string.h、cstring(C)

(1)字符串连接函数 strcat、strncat
strcat(char[ ], const char[ ])
strncat(char[ ], const char[ ], int )

char str1[30]="People's Republic of ";
char str2[]="China";
strcat(str1,str2);
cout<<str1<<endl; //People's Republic of China
strncat(str2,"12345",2);
cout<<str2; //China12

(2)字符串复制函数 strcpy、strncpy
strcpy(char[ ], const char[ ])
strncpy(char[ ], const char[ ], int )

char str1[10],str2[10],str3[]="China";
strcpy(str1,str3);
cout<<str1<<endl; //China
strncpy(str2,str3,2);
cout<<str2; //Ch

(3)字符串比较函数 strcmp
strcmp(const char[ ],const char[ ])

strcmp(str1,str2);

1)如果str1=str2, 函数值=0;
2)如果str1>str2, 函数值>0;
3)如果str1<str2, 函数值<0;
(4)字符串长度函数strlen
strlen(const char[ ])

char str[10]="China";
cout<<strlen(str);//5

(5)初始化函数memset
memset(char[ ], int ,int )

char str[30];
memset(str,'a',5);
cout<<str; //aaaaa

(6)字符串分割
char *strtok(char src[], const char *delim)
src为待分解的字符串,delim为分隔符
由于C/C++没有 split() 函数,这里借用 strtok() 函数简单实现一下:

int split(char *src,char *separator,char *dest[]) {int i=0;char *p=strtok(src,separator);while(p!=NULL) {dest[i++]=p;p=strtok(NULL,separator);}return i;
}

2 cstring、string(C++)

(1)复制、连接、比较运算

string str1,str2,str3;
str1="abc"; //复制,abc
cout<<str1<<endl;
str2=str1+"def"; //连接,abcdef
cout<<str2<<endl;
cout<<(str1>str2)<<endl; //比较,0
cout<<(str1<str2)<<endl; //比较,1
cout<<(str1=="abc");    //比较,1

(2)查找子串函数find、rfind
正向查找
find(string )
find(string ,int )

string s="abcaabcddbc";
cout<<s.find("abc")<<endl; //0
cout<<s.find("bc")<<endl; //1
cout<<s.find("ef")<<endl; //18446744073709551615(即-1)
cout<<s.find("abc",1)<<endl; //4
cout<<s.find("bc",6)<<endl; //9

逆向查找
find(string )

string s="abcaabcddbc";
cout<<s.rfind("abc")<<endl; //4
cout<<s.rfind("bc")<<endl; //9
cout<<s.rfind("ef")<<endl; //18446744073709551615(即-1)

注意:在条件控制语句中,不要将find()的返回值与0或-1作大小比较,而应与-1作等于或不等于比较。

string s="abcaabcddbc";
//正确做法
cout<<(s.find("abc")!=-1)<<endl; //1
cout<<(s.find("abc")==-1)<<endl; //0
cout<<(s.find("ef")==-1)<<endl; //1
cout<<(s.find("ef")!=-1)<<endl; //0
//错误做法
cout<<(s.find("abc")>-1)<<endl; //理论返回1,实际0
cout<<(s.find("ef")<0)<<endl; //理论返回1,实际0

(3)替换子串函数replace
replace(int ,int ,string )

string s="aaabbbccc";
s.replace(3,3,"**");
cout<<s; //aaa**ccc

3 math.h、cmath

(1)int abs(int i) //返回整型参数i的绝对值
(2)double fabs(double x) //返回双精度参数x的绝对值
(3)long labs(long n) //返回长整型参数n的绝对值

(4)double exp(double x) //返回指数函数e^x的值
(5)double pow(double x,double y) //返回x^y的值
(6)double pow10(int p) //返回10^p的值

(7)double log(double x) //返回logex的值
(8)double log10(double x) //返回log10x的值

(9)double sqrt(double x) //返回√x的值

(10)int ceil(double x) //返回不小于x的最小整数
(11)int floor(double x) //返回不大于x的最大整数

4 stdlib.h、cstdlib

(1)void exit(int code) //终止程序执行
(2)void * malloc(long NumBytes) //申请内存
(3)void free(void *ptr) //释放内存

#include<cstdlib>
using namespace std;
int main(){int *i=(int *)malloc(sizeof(int)); //开辟一个整型数据空间 float *f=(float *)malloc(sizeof(float)*5); //开辟一个长度为5的浮点型数组free(i); //释放整型数据空间 free(f); //释放浮点型数组空间i=new int; //开辟一个整型数据空间f=new float[5]; //开辟一个长度为5的浮点型数组char *c=new char('a'); //开辟一个字符型数据空间,并赋初值为'a' c=(char *)new char[4][5]; //开辟一个4x5字符数组 delete i;delete f;delete c;return 0;
}

注意:new、delete、sizeof()都是运算符
(4)void srand(int seed) //随机数生成器种子
(5)int rand(void) //生成0~32768之间的一个随机数

#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
int main(){srand(time(NULL));cout<<rand();return 0;
}

5 algorithm

(1)排序函数sort
升序:sort(begin, end, less())
降序:sort(begin, end, greater())

#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int main(){int i;int a[]={8,4,1,0,6,3,5,7,9,2};int b[]={8,4,1,0,6,3,5,7,9,2};float f[]={8.1,4.1,1.1,0.1,6.1,3.1,5.1,7.1,9.1,2.1};char c[]="iebagdfhjc";string s[]={"wan","bi","zhang","ding","li"};sort(a,a+10); //升序排序(整数) sort(b,b+10,greater<int>()); //降序排序(整数)sort(f,f+10); //升序排序(浮点数)sort(c,c+10); //升序排序(字符)sort(s,s+5); //升序排序(字符串)for(i=0;i<10;i++)cout<<a[i]<<" ";cout<<endl;for(i=0;i<10;i++)cout<<b[i]<<" ";cout<<endl;for(i=0;i<10;i++)cout<<f[i]<<" ";cout<<endl;for(i=0;i<10;i++)cout<<c[i]<<" ";cout<<endl;for(i=0;i<5;i++)cout<<s[i]<<" ";return 0;
}

6 文件操作

(1)stdio.h、cstdio(C)

#include<stdio.h>
int main(){int i,a[5];FILE *fp;fp=fopen("in.txt","r");for(i=0;i<5;i++){fscanf(fp,"%d",&a[i]);}fclose(fp);fp=fopen("out.txt","w");for(i=0;i<5;i++){fprintf(fp,"%d ",a[i]);}fclose(fp);return 0;
}

(2)fstream(C++)

#include<fstream>
using namespace std;
int main(){int i,a[5];ifstream in("in.txt"); //文件输入流 for(i=0;i<5;i++){in>>a[i];}in.close();ofstream out("out.txt"); //文件输出流 for(i=0;i<5;i++){out<<a[i]<<" ";}out.close();return 0;
}

C/C++常用函数汇总相关推荐

  1. matlab常用函数汇总

    matlab常用函数汇总 1.特殊变量与常数 ans 计算结果的变量名 computer 确定运行的计算机 eps 浮点相对精度 Inf 无穷大 I 虚数单位 inputname 输入参数名 NaN ...

  2. Oracle常用函数汇总记录

    Oracle常用函数汇总记录 一.SUBSTR 截取函数 用法:substr(字符串,截取开始位置,截取长度) //返回截取的字, 字符串的起始位置为1,截取时包含起始位置字符 1.SUBSTR( & ...

  3. Hive内置函数与常用函数汇总

    目录 Hive内置函数汇总 字符函数(字符串操作) 数学函数 集合函数 类型转换函数 日期函数 条件函数 聚合函数 表生成函数 辅助功能类函数 数据屏蔽函数(从Hive 2.1.0开始) Hive常用 ...

  4. 干货|219个opencv常用函数汇总

    点上方计算机视觉联盟获取更多干货 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:作者丨AmosLLc 来源丨新机器视觉      作者为CSDN博主「AmosLLc」 原文链接:https: ...

  5. Python中处理字符串的常用函数汇总【文末送书】

    正式的Python专栏第23篇,同学站住,别错过这个从0开始的文章! 今天我们说了字符串的基础,格式化,这次我们讲解字符串的常用函数,不要错过! (文本送书,评论区抽取一位送书) 前两篇都在本文同个专 ...

  6. tf2常用数据类型与常用函数汇总

    本篇文章将对tf2的一些常用函数及类进行记录,以方便以后使用. tf2的wiki教程为 http://wiki.ros.org/tf2/Tutorials tf2的源码地址为 https://gith ...

  7. thinkphp5常用函数汇总_THINKSNS常用函数

    Thinksns 常用函数一览表: 以下是 extend.php : * function get_client_ip() {} 获取客户端 IP 地址 * function msubstr($str ...

  8. C++编程题最常用函数汇总

    内容会持续更新,有错误的地方欢迎指正,谢谢! 1.类型转化 string转int的方式 采用标准库cstdlib中atoi函数,<cstdlib>是C++里面的一个常用函数库, 等价于C中 ...

  9. DB2数据库常用函数汇总

     DB2常用函数 AVG 返回平均值 语法:            .-ALL------. >>-AVG--(--+----------+--expression--)------- ...

  10. 纯干货!77个Python常用函数汇总,赶紧收藏!

    Python常用函数: 1. print()函数:打印字符串 2. raw_input()函数:从用户键盘捕获字符 3. len()函数:计算字符长度 4. format(12.3654,'6.2f' ...

最新文章

  1. android fragment概念,android Fragment相关概念简介
  2. 数据库的UNDO和REDO
  3. 网络通信-2(TCP通信、ServerSocket、Socket)
  4. 连接maven_如何在Eclipse中使用Maven工程连接远程的Spark
  5. Android一个简单易用的进度条
  6. 图算法--深度优先/广度优先/最小生成树/最短路径
  7. 【Flink】FLink 提交报错 instead of minReplication (=1). There are 3 datanode(s) running and 3 node(s) are
  8. 如何使用定时器产生两路频率可调的PWM波
  9. 智能优化算法:供需优化算法-附代码
  10. 实习成长之路:MySQL五:全局锁和表锁 :给表加个字段怎么有这么多阻碍?
  11. jni回调java类中函数_Andriod JNI编程之C++回调Java函数
  12. 坐标系转换--筛选高于RMS的强源-------ska暑期训练
  13. css实现圆球旋像水波波动_这49个CSS知识点你未必会知道
  14. linux内核旋转屏幕,全志A33屏幕旋转(Android)
  15. meta http-equiv 是什么
  16. TrackFormer: Multi-Object Tracking with Transformers
  17. python爬虫面试自我介绍范文_一分钟面试自我介绍范文15篇
  18. DM6467的CAN模块调试(SPI转CAN)
  19. Unity(协程是什么,怎么用)
  20. 谈谈激活函数以零为中心的问题

热门文章

  1. Nginx HTTP 健康检查
  2. C++ Primer Plus(嵌入式公开课)---第5,6章 循环和关系表达式 分支语句和逻辑运算符
  3. lighttpd隐藏index.php,lighttpd开启rewrite伪静态方法 - 老牛博客
  4. HDU-2550-百步穿杨
  5. mysql characterencoding utf8mb4_Mysql UTF-8mb4字符集的问题
  6. 探讨IT人的创业方向
  7. LeetCode 力扣算法题解汇总,All in One
  8. Illumina输出文件详解
  9. 项目4.1 -- 广义表的原子统计
  10. 在linux mint 14(cinnamon)制作U盘系统引导