写在前面

这些函数都是我和朋友一点一点写出来的,可能部分代码会有点雷同,但大部分代码都是自我总结出来的。目前包含的函数功能分别是:

1、设置控制台颜色

2、设置控制台光标位置

3、隐藏控制台光标

4、判断质数(也是够无聊的)

5、最小因数

6、快速读入int型

7、快速读入string型

8、判断按键是否按下(可以根据上面的VK值来对号入座,鼠标点击等自行百度)

9、获得两个字符串的最长公共字串

10、说明文档(或许没用?)

上代码!

#include <windows.h>
#include <iostream>
#include <cstdio>
#include <conio.h>
#include <cmath>
#include <sstream> #define VK_0 0x30
#define VK_1 0x31
#define VK_2 0x32
#define VK_3 0x33
#define VK_4 0x34
#define VK_5 0x35
#define VK_6 0x36
#define VK_7 0x37
#define VK_8 0x38
#define VK_9 0x39 //定义数据字符A~Z
#define VK_A 0x41
#define VK_B 0x42
#define VK_C 0x43
#define VK_D 0x44
#define VK_E 0x45
#define VK_F 0x46
#define VK_G 0x47
#define VK_H 0x48
#define VK_I 0x49
#define VK_J 0x4A
#define VK_K 0x4B
#define VK_L 0x4C
#define VK_M 0x4D
#define VK_N 0x4E
#define VK_O 0x4F
#define VK_P 0x50
#define VK_Q 0x51
#define VK_R 0x52
#define VK_S 0x53
#define VK_T 0x54
#define VK_U 0x55
#define VK_V 0x56
#define VK_W 0x57
#define VK_X 0x58
#define VK_Y 0x59
#define VK_Z 0x5A //定义数据字符a~z
#define VK_a 0x61
#define VK_b 0x62
#define VK_c 0x63
#define VK_d 0x64
#define VK_e 0x65
#define VK_f 0x66
#define VK_g 0x67
#define VK_h 0x68
#define VK_i 0x69
#define VK_j 0x6A
#define VK_k 0x6B
#define VK_l 0x6C
#define VK_m 0x6D
#define VK_n 0x6E
#define VK_o 0x6F
#define VK_p 0x70
#define VK_q 0x71
#define VK_r 0x72
#define VK_s 0x73
#define VK_t 0x74
#define VK_u 0x75
#define VK_v 0x76
#define VK_w 0x77
#define VK_x 0x78
#define VK_y 0x79
#define VK_z 0x7A
using namespace std;
/*
制作于2020.6.29
目前版本:1.5
日志:
2020.8.11:1.5 加入键盘侦测函数(就是把傻逼微软的函数写短了一点) ,和获得最长公共子串的函数LongSubstring
2020.8.10:1.4 加入快速读入函数
2020.7.31:1.3 加入Prime和Factor函数
2020.7.27:1.2 重置名字,采用驼峰命名法
2020.6.29:1.0 包含设置color和设置光标位置的函数
*/
namespace tool
{
/*** 设置颜色 ***/
void SetColor(unsigned short ForeColor = ,unsigned short BackGroundColor = )
{
HANDLE hCon=GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hCon,(ForeColor%)|(BackGroundColor%*));
}
/*** 颜色帮助 ***/
void HelpColor()
{
for (int i = ;i <= ;i++)
{
SetColor(i, );
cout << i << endl;
}
}
/*** 设置光标 ***/
int SetPos(int posx, int posy)
{
COORD pos = {posx,posy};
HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(hCon, pos);
return ;
}
/*** 隐藏光标 ***/
void Hide()
{
CONSOLE_CURSOR_INFO cursor_info={,};
SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info);
}
/*** 判断质数 ***/
bool Prime(unsigned long long s)
{
if (s == )
return true;
if (s % == )
return false;
for (int i = ;i <= sqrt(s) + ;i += )
{
if (s % i == )
return false;
}
return true;
}
/*** 最小因数 ***/
unsigned long long Factor(unsigned long long s)
{
for (int i = ;i <= s;i++)
{
if (s % i == )
return i;
}
}
/*** 快读整数 ***/
inline int IntRead()//内联函数稍微快一点点
{
char ch = getchar();
int s = , w = ;
while(ch < '' || ch > '')
{
if(ch == '-') w = -;
ch = getchar();
}
while(ch >= '' && ch <= '')
{
s = s * + ch - '',
ch = getchar();
}
return s * w;
}
/*** 快读字串 ***/
inline string StringRead(int ch = )
{
string str;
char s = getchar();
while ((ch == && (s == ' ' || s == '\n' || s == '\r')) || (ch == && (s == '\n' || s == '\r')))
{
s = getchar();
}
while ((ch == && s != ' ' && s != '\n' && s != '\r') || (ch == && s != '\n' && s != '\r'))
{
str += s;
s = getchar();
}
return str;
}
/*** 侦测按键 ***/
bool KeyDown(int VK_NOW)
{
return (GetAsyncKeyState(VK_NOW) & 0x8000) ? true : false;
}
/*** 共子串长 ***/
int LongSubstring(string a, string b)
{
int lena = a.length(), lenb = b.length(), ans[lena][lenb], Ans = ;
memset(ans, , sizeof(ans));
for (int i = ;i < lena;i++)
{
for (int j = ;j < lenb;j++)
{
if (a[i] == b[j])
{
ans[i][j] = (i == || j == ? : + ans[i - ][j - ]),
Ans = max(ans[i][j], Ans);
}
}
}
return Ans;
}
/*** 说明文档 ***/
void Help()
{
const int SIZE = ;
const string function[SIZE][] =
{
"SetColor", "用于设置颜色\n格式 SetColor(字体颜色, 背景色)\n常用颜色:0 黑 10 绿 12 红 15 白",
"SetPos", "用于设置光标位置\n格式 SetPos(光标x坐标, 光标y坐标)",
"Hide", "隐藏光标\n格式 Hide()",
"Prime", "判断一个数是不是质数,如果是则返回true,不是返回false\n格式 Prime(数字)",
"Factor", "获得一个正整数除了1以外的最小因数\n格式 Factor(数字)",
"IntRead", "快速读入一个整数\n格式 整数型 = IntRead()",
"StringRead", "快速读入一个string字符串\n格式 字符串 = StringRead(是1就读整行,默认0)",
"KeyDown", "判断按键是否按下,例如KeyDown(VK_s)判断小写s是否按下\n格式 KeyDown(VK值),返回布尔值",
"Similarity", "这个函数用来判断两个字符串最长公共子串\n格式 LongSubstring(字符串1, 字符串2)",
"NONE", "" //请保持在最后
};
cout
<< "tool.h库" << endl<< "查询:(exit退出)" << endl
<< "SetColor" << endl
<< "SetPos" << endl
<< "Hide" << endl
<< "Prime" << endl
<< "Factor" << endl
<< "IntRead" << endl
<< "StringRead" << endl
<< "KeyDown" << endl
<< "LongSubstring" << endl;
string help;
bool X = false;
while ()
{
cin >> help;
if (help == "exit")
return;
else
{
for (int i = ;function[i][] != "NONE" && !X;i++)
{
if (function[i][] == help)
{
cout << function[i][] << endl;
X = true;
}
}
}
if (X == false)
{
int l = , s = ;
for (int i = ;function[i][] != "NONE";i++)
{
int k = LongSubstring(function[i][], help);
//如果更加相似
if (k > l)
{
//记录索引和长度
l = k, s = i;
}
}
cout << "这个函数我们并没有。" << endl;
if (l >= help.length() / ) //如果相似度达50%以上
{
cout << "那么是" << function[s][] << "函数吗?" << endl;
}
}
cout << "还有什么需要的吗?" << endl;
}
}
}

[持续更新]——关于C++的一些可能会常用的函数的更多相关文章

  1. (持续更新)vs2012,2013,2015,2017,2019 常用的插件 与 开发中常用的工具

    这篇博客 持续更新. 小伙伴们可以复制名称,在vs的扩展和更新中去搜索下载 .其他的工具在官网下载

  2. Python常用组件、命令大总结(持续更新)

    Python开发常用组件.命令(干货) 持续更新中-关注公众号"轻松学编程"了解更多. 1.生成6位数字随机验证码 import random import string def ...

  3. git常用命令(持续更新中)

    git常用命令(持续更新中) 本地仓库操作git int                                 初始化本地仓库git add .                       ...

  4. 总结js常用函数和常用技巧(持续更新)

    学习和工作的过程中总结的干货,包括常用函数.常用js技巧.常用正则表达式.git笔记等.为刚接触前端的童鞋们提供一个简单的查询的途径,也以此来缅怀我的前端学习之路. PS:此文档,我会持续更新. Aj ...

  5. 【前端】Util.js-ES6实现的常用100多个javaScript简短函数封装合集(持续更新中)

    Util.js (持续更新中...) 项目地址: https://github.com/dragonir/Util.js 项目描述 Util.js 是对常用函数的封装,方便在实际项目中使用,主要内容包 ...

  6. 【github&&git】4、git常用命令(持续更新中)

    git常用命令(持续更新中) 本地仓库操作git int                                 初始化本地仓库git add .                       ...

  7. Android开发中常用的库总结(持续更新)

    这篇文章用来收集Android开发中常用的库,都是实际使用过的.持续更新... 1.消息提示的小红点 微信,微博消息提示的小红点. 开源库地址:https://github.com/stefanjau ...

  8. python3.4学习笔记(六) 常用快捷键使用技巧,持续更新

    python3.4学习笔记(六) 常用快捷键使用技巧,持续更新 安装IDLE后鼠标右键点击*.py 文件,可以看到Edit with IDLE 选择这个可以直接打开编辑器.IDLE默认不能显示行号,使 ...

  9. iOS:开发常用GitHub开源项目(持续更新)

    IOS开发常用GitHub开源项目(持续更新) 数据类 开源库 作者 简介 AFNetworking Mattt 网络请求库 ASIHTTPRequest pokeb 网络请求库 Alamofire ...

随机推荐

  1. Python3 装饰器解析

    第6章 函数 6.1 函数的定义和调用 6.2 参数传递 6.3 函数返回值 6.4 变量作用域 6.5 匿名函数(lambda) 6.6 递归函数 6.7 迭代器 6.8 生成器 6.9 装饰器 6 ...

  2. 微信小程序实战:表单与选择控件的结合

    先上代码. login.wxml <mp-toptips msg="{{error}}" type="error" show="{{error} ...

  3. C++语法小记---智能指针

    智能指针 用于缓解内存泄露的问题 用于替代原生指针 军规:只能指向堆空间中的对象或变量 方法 在智能指针的析构函数中调用delete 重载"->"操作符,只能重载成成员函数, ...

  4. github 新功能 profile README.md

    引 自从github被微软收购后,每天都会有一些新花样,ui变化,界面变化,更多的功能,相信这个它会越来越好,程序员越来越喜欢.今天浏览大佬的github 无意中发现了 github profile ...

  5. Java7/8 中的 HashMap 和 ConcurrentHashMap

    Java7 HashMap  数组+链表 Java7 ConcurrentHashMap   Segment数组+HashEntry数组链表+ReenTrantLock分段锁 Java8 HashMa ...

  6. CSS3多栏布局

    CSS3多栏布局 分栏数: column-count:auto|num: auto为默认值,表示元素只有一列.num取值为大于0的整数 每栏宽度: column-width:auto|<leng ...

  7. matplotlib基础汇总_02

    设置plot的风格和样式 点和线的样式 颜色 参数color或c 五种定义颜色值的方式 别名 color='r' 合法的HTML颜色名 color = 'red' HTML十六进制字符串 color ...

  8. PHP 中的字符串变量

    PHP 字符串变量 字符串变量用于存储并处理文本. PHP 中的字符串变量 字符串变量用于包含有字符的值. 在创建字符串之后,我们就可以对它进行操作了.您可以直接在函数中使用字符串,或者把它存储在变量 ...

  9. PHP fseek() 函数

    定义和用法 fseek() 函数在打开的文件中定位. 该函数把文件指针从当前位置向前或向后移动到新的位置,新位置从文件头开始以字节数度量. 如果成功该函数返回 0,如果失败则返回 -1.请注意,移动到 ...

  10. PHP is_nan() 函数

    实例 判断一个值是否为非数值: <?phpecho is_nan(200) . "<br>";echo is_nan(acos(1.01));?>高佣联盟  ...