C/C++语言
C/C++语言
wzxiaodu
这个作者很懒,什么都没留下…
展开
-
C语言实现字符串截取函数left、mid和right
C语言字符串截取须要自己编程实现,只是。网络时代,自然不用自己从头写了。网上各种方法的实现代码已经多如牛毛了,这儿抄录一个感觉不错的备案。转载 2023-02-08 13:21:46 · 1389 阅读 · 0 评论 -
计算2的平方根 真牛。
#include <stdlib.h>#include <stdio.h>int main(){ int a = 1000, b = 0, c = 1413, d, f[1414], n = 800, k; for( ; b < c; f[b++] = 14 ); for( ; n--; d += *f * a, printf( "%.3d", d / a ), *f = d % a ) for( d = 0, k = c; -.转载 2022-03-29 21:51:27 · 255 阅读 · 0 评论 -
(转)计算2的平方根,并输出小数点后N位
https://wenda.so.com/q/1374009916066419#include <math.h>#include <malloc.h>#include <memory.h>#include <stdio.h>typedef unsigned char U8;typedef unsigned short U16;typedef unsigned long U32;#define LEN_QUEST 400 /* precis原创 2022-03-29 15:09:55 · 386 阅读 · 0 评论 -
(转)圆周率PI的高精度计算(C/C++)
牛人 实在看不懂。。。#include <stdlib.h>#include <stdio.h>#define BITS 200int a = 10000, b, c = BITS * 7 / 2, d, e, f[BITS * 7 / 2 + 1], g;int main(){ for( ; b - c; ) f[b++] = a / 5; for( ; d = 0, g = c * 2; c -= 14, printf( "%.转载 2022-03-29 11:05:19 · 859 阅读 · 0 评论 -
SHA1算法 c语言(参考其他修改)
https://www.cnblogs.com/scu-cjx/p/6878853.html原来MD5和SHA1分组是不一样的。大小端区别。#define _CRT_SECURE_NO_WARNINGS#ifndef SHA1_H#define SHA1_H#include <stdio.h>#include <string.h>#include <stdlib.h>#include <math.h>#ifdef __cplu原创 2022-03-25 17:31:29 · 1870 阅读 · 0 评论 -
MD5算法,c语言(参考其他修改)
https://blog.csdn.net/hla199106/article/details/45129963https://blog.csdn.net/White3zz/article/details/103130609#define _CRT_SECURE_NO_WARNINGS#ifndef MD5_H#define MD5_H#include <stdio.h>#include <stdlib.h>#include <string.h>原创 2022-03-24 17:19:57 · 632 阅读 · 0 评论 -
C++ MD5源码
#ifndef MD5_H#define MD5_H#include <string>#include <fstream>/* Type define */typedef unsigned char byte;typedef unsigned int uint32;using std::string;using std::ifstream;/* MD5 declaration. */class MD5{public: MD5(); M.转载 2022-03-21 15:35:48 · 513 阅读 · 0 评论 -
C语言 MD5源码
//md5c.h#ifndef MD5_H#define MD5_H#ifdef __cplusplusextern "C" {#endif/* POINTER defines a generic pointer type */typedef unsigned char * POINTER;/* UINT2 defines a two byte word *///typedef unsigned short int UINT2;/* UINT4 defines a four...转载 2022-03-21 15:20:31 · 1275 阅读 · 0 评论 -
解决popen来调用dos,黑窗口一闪而过。。。
//隐藏一个控制台窗口,使得在之后用popen来启shell窗口的时候,不显示黑窗口,或者避免黑窗口一闪而过的情况 AllocConsole(); //为调用进程分配一个新的控制台 ShowWindow(GetConsoleWindow(), SW_HIDE); //隐藏自己创建的控制台...转载 2022-03-14 11:02:11 · 708 阅读 · 1 评论 -
(转) Tooltip工具提示控件的使用
如何为一个控件创建一个工具提示控件How to Create a Tooltip for a Control1.创建一个基于对话框的工程TestToolTip;2.在对话框实现文件写入以下代码:/*----------------------------------------------------------------------------- Description: 创建控件的Tooltip --------------------------------------------转载 2022-03-07 22:21:44 · 1657 阅读 · 0 评论 -
(转) Win32控件-ToolTip的使用
最近在MFC中使用ToolTip时有诸多疑惑,查阅了不少资料,仔细研究了MSDN文档,在此记录使用方法和注意事项,与大家共勉。1.理论首先,思考一下,如果是我们自己来实现ToolTip(工具提示)的功能,要如何做呢?最自然的想法是:当我们把鼠标移动到希望提示的窗口时弹出一个提示窗口,我们把鼠标移出希望提示的窗口时关闭提示窗口。OK,微软也不会比我们聪明多少,它的实现基本思想就是这样的。需要注意的是微软为了保证使用的方便,使用了设计模式中的观察者模式,这样使用方便,但是却造成了理解上的不易。转载 2022-03-07 22:10:08 · 1123 阅读 · 0 评论 -
void* 和 std::string、std::vector 互转
// Cast a dynamically allocated string to 'void*'.void *vp = static_cast<void*>(new std::string("it's easy to break stuff like this!"));// Then, in the function that's using the UserEvent:// Cast it back to a string pointer.std::string *sp = st.原创 2022-03-07 22:04:51 · 1507 阅读 · 0 评论 -
用DialogBox生成的对话框一开始就隐藏起来
WM_INITDIALOG中加入即可。SetWindowPos (hWnd,NULL,0,0,0,0,SWP_HIDEWINDOW);原创 2022-02-23 21:35:03 · 224 阅读 · 0 评论 -
有关 libcurl 例子
#include <stdio.h>#include <curl/curl.h>#include <string>using std::string;struct memory{ char *response; size_t size;// memory()// {// response = ( char * )calloc( 1, 1 );// size = 0;// }//..原创 2022-02-10 19:45:37 · 520 阅读 · 0 评论 -
屏幕截图 (捕获映像)
https://docs.microsoft.com/zh-cn/windows/win32/gdi/capturing-an-image?redirectedfrom=MSDN#code-example// GDI_CapturingAnImage.cpp : Defines the entry point for the application.//#include "framework.h"#include "GDI_CapturingAnImage.h"#define MAX_..原创 2022-01-07 08:59:29 · 228 阅读 · 0 评论 -
C++获取屏幕分辨率(屏幕窗口大小),屏幕显示比例(DPI)几种方法
1、获取屏幕的分辨率的几种方法#include <Windows.h> #include <iostream>int main(void) { HWND hd = GetDesktopWindow(); // 方法一 RECT rect; // 只获得窗口客户区的大小 GetClientRect(hd, &rect); int client_width = (rect.right - rect.left); int client_height = (转载 2022-01-06 10:43:35 · 8006 阅读 · 0 评论 -
OpenCV 一些例子,取自网络等
#include <opencv2/core/core.hpp>#include <opencv2/highgui/highgui.hpp>#include <opencv2/imgproc/imgproc.hpp>#include <vector>using namespace cv;vector<string> fn;glob("img.png", fn, true); Mat src, imgGray;sr.原创 2022-01-04 19:51:36 · 1558 阅读 · 0 评论 -
(转)运行 Winsock 客户端和服务器代码示例
https://docs.microsoft.com/zh-cn/windows/win32/winsock/complete-client-code#define WIN32_LEAN_AND_MEAN#include <windows.h>#include <winsock2.h>#include <ws2tcpip.h>#include <stdlib.h>#include <stdio.h>// Need to l.原创 2021-12-29 19:00:36 · 164 阅读 · 0 评论 -
c++实现AES加密算法
//#include "stdafx.h"#include <Windows.h>#include <stdio.h>void ShowError(const char *pszText){ char szErr[MAX_PATH] = { 0 }; ::wsprintf(szErr, "%s Error[0x%x]\n", pszText, ::GetLastError());#ifdef _DEBUG ::MessageBox(NULL, szErr, "E.转载 2021-12-21 10:24:57 · 2431 阅读 · 0 评论 -
c++中RSA加密和解密
//#include "stdafx.h"#include <Windows.h>#include <stdio.h>void ShowError(const char *pszText){ char szErr[MAX_PATH] = { 0 }; ::wsprintf(szErr, "%s Error[0x%x]\n", pszText, ::GetLastError());#ifdef _DEBUG ::MessageBox(NULL, .转载 2021-12-21 10:14:51 · 2651 阅读 · 0 评论 -
c++计算 md5 sha1 sha256值
//#include "stdafx.h"#include <Windows.h>#include <stdio.h>void ShowError(const char *pszText){ char szErr[MAX_PATH] = { 0 }; ::wsprintf(szErr, "%s Error[%d]\n", pszText, ::GetLastError());#ifdef _DEBUG ::MessageBox(NULL, szE.转载 2021-12-21 09:47:55 · 658 阅读 · 0 评论 -
(转)cJSON的构造和解析
http://blog.sina.com.cn/s/blog_a6fb6cc90101ffme.html#include#include#include#include "cJSON.h"char * create1(){ cJSON *root,*dir1,*dir2,*dir3; char *out; //创建json数组型结构体 root = cJSON_CreateArray(); //为数组添加对象 cJSON_AddItem...原创 2021-11-25 16:30:53 · 358 阅读 · 0 评论 -
c++ sdk 控件文本框
以前找自网络,现个底!!!LRESULT CALLBACK EditProc(HWND hedit, UINT Msg, WPARAM wParam, LPARAM lParam){ switch (Msg) { case WM_CHAR: { if (wParam == 1) { SendMessage(hedit, EM_SETSEL, 0, -1); return true; } break; } defau...原创 2021-09-06 14:09:29 · 450 阅读 · 0 评论 -
C++字符串分割方法总结
在一些编程练习中,经常会对字符串进行处理,往往处理之前都会对字符串进行分割来提取各部分信息。在C++中虽然没有像python那样提供split这样直接的字符串分割函数,但也有一些其他的方法能够对其进行分割,下面介绍几种C++中常用的字符串分割方法。通过string成员函数实现在C++ string类中,提供了两个成员函数可以用来实现字符串分割,一个是find函数,另一个是substr函数,下面看一下这两个函数的声明。find函数:原型: size_t find (const string&转载 2021-09-06 12:13:41 · 13367 阅读 · 1 评论 -
使你的C/C++代码支持Unicode
转自:https://blog.csdn.net/akof1314/article/details/5060971本文摘自I18nGuy主页的一篇内容,原文地址:http://www.i18nguy.com/unicode/c-unicode.zh-CN.html文档在线看:http://www.docin.com/p-37841375.html这份文档简要的说明了如何修改你的C/C++代码使之支持Unicode。在这里并不准备解释太多相关的技术细节并且我得假定你已经基本熟悉Micros..转载 2021-09-05 16:06:14 · 555 阅读 · 0 评论 -
文件读取,读取带空格字符串的问题
实际工作中,碰到如何读取带空格字符串的问题,记录如下:我用的FILE文件对象,使用fscanf来读内容,文件是一个txt文件,每一行要么是数字,要么是汉字或者英文,都是有规律的。所以,可以用fscanf(file,"%d"...)来读取,没有问题。之前我用fscanf(file,"%s"....)读取字符串的时候,不论是汉字或者是英文,如果字符串是连续的,也没有问题。但是,碰到了带空格的字符串,如"hello world"而不是"helloworld"时,我需要把这一行的字符串都读出来当.转载 2021-09-05 15:31:06 · 2071 阅读 · 1 评论 -
gcc c++ wcout/cout printf/wprintf 中文输出问题
来源:https://www.cnblogs.com/zyl910/archive/2013/01/20/wchar_crtbug_01.html在测试 MinGW-W64 GCC-8.1.0 上通过,其他不行,不知为何?留底记录!!#include <stdio.h>#include <locale>#include <string>#include <iostream>using namespace std;//编译连接加.转载 2021-09-02 19:37:44 · 389 阅读 · 0 评论 -
wprintf、wcout输出中文和unicode中文字符串的转换问题
本来想搞明白点wchar_t,就写了个很简单的wcout的例子,结果中文无法输出,然后换成wprintf,却还是不行~于是在网上搜啊搜,总算解决了问题,总结一下:试着运行下面的代码:wchar_t *ws = L"你好";wcout << ws << endl;这样没有任何输出,必须将locale设为本地语言,就是在wcout前加入下面这句话就可以:std::wcout.imbue( locale(locale(), "", LC_CTYPE) );//注:如转载 2021-09-02 10:44:48 · 772 阅读 · 0 评论 -
C C++ 字符串大小写转换
在C++中,由于没有单独定义string这个对象,所以字符串的操作比较麻烦些。字符串转换大小写是一个常用的功能,今天就简单总结下常用转换的方法:由于ANSI和Unicode在函数名上有差别,故都列出来,不过本人以Unicode为主。【1. 用C语言标准库函数 toupper, tolower】头文件:cctype c下面:ctype.h转大写Ansi版: int toupper(int c);</a>Unicode版:int towupper(wint_t ...转载 2021-08-19 00:35:09 · 1996 阅读 · 0 评论 -
让DLL卸载自身 -- FreeLibraryAndExitThread()
实际问题:DLL是MFC的DLL, 我在这个DLL的初始化函数中创建了一个对话框窗口, 如何在dll中操作实现结束dll当前的线程和释放掉dll.比如在窗口(模态对话框)关闭后结束线程, 释放dll.kernel32.dll里有个函数叫FreeLibraryAndExitThread就是专门给你做这种事情用的:正常情况下你调用FreeLibrary来释放当前执行的代码所在的DLL会导致FreeLibrary返回以后无法继续执行之后的代码(DLL已经释放了)而这个函数会在FreeLibrary.转载 2021-08-19 00:30:45 · 1200 阅读 · 0 评论 -
(修)openssl ShowCerts
void ShowCerts(SSL * ssl){ X509 *cert; char *line; cert = SSL_get_peer_certificate(ssl); if (cert != NULL) { printf("Server certificates:\n"); line = X509_NAME_oneline(X509_get_subject_name(cert), NULL, 0); pr.原创 2021-05-30 20:01:27 · 292 阅读 · 0 评论 -
(转)使用OPENSSL实现RAS-**创建-加密-解密(C语言)
一、下载安装过程openssl下载安装过程二、使用介绍1-使用指令实现/*********************************************************************************************1.openssl genrsa -out test.key 1024 —>生成一个****2.openssl rsa -in test.key -pubout -out test_pub.key —>提取**中的公钥**3.o转载 2021-05-20 15:22:43 · 553 阅读 · 0 评论 -
(转)socket编程之openssl入门
1、什么是sslSecure Sockets Layer它是支持在Internet 上进行安全通信的标准, 并且将数据密码技术集成到了协议之中。数据在离开计算机之前就已经被加密, 只有到达它预定的目标后才被解密。证书和密码学算法支持了这一切的运转,使用OpenSSL来切身体会它们。理论上,如果加密的数据在到达目标之前被截取或窃听,那些数据是不可能被破解的。不过,由于计算机的变化一年比一年快,而且密码翻译方法有了新的发展,因此, SSL中使用的加密协议被破解的可能性也在增大。可以将转载 2021-05-20 07:31:09 · 712 阅读 · 0 评论 -
(转)OPENSSL之BIO操作
OPENSSL之BIO操作 (转)最近一直在研究OPENSSL的API函数库,前几天一直研究ASN1编码,从昨天下午开始学习了BIO的操作,感觉这个BIO就是对普通的一些I/O操作进行了封装,当然,不仅仅是简单的封装,还涉及到很多的。它主要包含两个类型,一个是filter类型,一个是source/sink类型,个人认为filter类型是进行相应的操作,譬如加密,编码;而source/sink类型主要是进行文件的写入,读取,也就是IO操作。所以在ctrl上面,只有后者才具有相应的操作。同时,我在编写相应的转载 2021-05-18 10:49:56 · 1407 阅读 · 0 评论 -
(转)利用openssl进行RSA加密解密
openssl是一个功能强大的工具包,它集成了众多密码算法及实用工具。我们即可以利用它提供的命令台工具生成密钥、证书来加密解密文件,也可以在利用其提供的API接口在代码中对传输信息进行加密。RSA是一个非对称加密算法。简单说来,非对称加密算法就是说加密解密一个文件需要有两个密钥,一个用来加密,为公钥,一个用来解密,为私钥。证书可以用来授权公钥的使用。今天小研究了下openssl的rsa加密,其中主要涉及利用公钥和密钥加解密文件,没有涉及对证书的操作。想要集体了解的可以去:http://www.o转载 2021-05-18 10:17:52 · 1181 阅读 · 0 评论 -
MD5算法的C语言实现
算法原理概述MD5信息摘要算法,( Message-Digest Algorithm 5),是一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值,用于确保信息传输完整一致。MD5算法使用little-endian(小端模式,即低位字节存在内存低地址),输入任意不定长度信息,算法都首先将其以512-bit进行分组(不足补位),每个512-bit的分组都和四个32-bit的数据一起,进行4次大循环(共64次迭代),并更新这四个32-bit数据。当所有分组都经过上述操作后,最后得到的四转载 2021-03-25 13:30:48 · 6536 阅读 · 0 评论 -
MD5算法 C语言实现
#include <stdio.h>#include <stdlib.h>#define MD5_ROTL(a,b) (MD5_tmp=(a),((MD5_tmp>>(32-b))&(0x7fffffff>>(31-b)))|(MD5_tmp<<b)) //循环左移#define MD5_F(X,Y,Z) ((X&Y)|((~X)&Z))#define MD5_G(X,Y,Z) ((X&Z)|(Y&am.转载 2021-03-23 16:37:45 · 114 阅读 · 0 评论 -
SHA1算法 C语言实现
#include <stdio.h>#include <stdlib.h>#define SHA1_ROTL(a,b) (SHA1_tmp=(a),((SHA1_tmp>>(32-b))&(0x7fffffff>>(31-b)))|(SHA1_tmp<<b))#define SHA1_F(B,C,D,t) ((t<40)?((t<20)?((B&C)|((~B)&D)):(B^C^D)):((t<6.转载 2021-03-23 16:35:03 · 673 阅读 · 0 评论 -
SHA-256算法 C语言实现
#include <stdio.h>#include <stdlib.h>#define SHA256_ROTL(a,b) (((a>>(32-b))&(0x7fffffff>>(31-b)))|(a<<b))#define SHA256_SR(a,b) ((a>>b)&(0x7fffffff>>(b-1)))#define SHA256_Ch(x,y,z) ((x&y)^((~x)&am.转载 2021-03-23 12:16:51 · 518 阅读 · 0 评论 -
Using Streams
The example in this topic demonstrates how to use basic NTFS file system streams.This example creates a file, called "TestFile," with a size of 16 bytes. However, the file also has an additional ::$DATA stream type, named "Stream" which adds an additiona转载 2021-03-18 12:54:52 · 124 阅读 · 0 评论