<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[yi_ming_he的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/yi_ming_he</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; yi_ming_he]]></copyright><item><title><![CDATA[新字体的永久注册]]></title><link>https://blog.youkuaiyun.com/yi_ming_he/article/details/84942623</link><guid>https://blog.youkuaiyun.com/yi_ming_he/article/details/84942623</guid><author>yi_ming_he</author><pubDate>Mon, 10 Dec 2018 16:53:19 +0800</pubDate><description><![CDATA[CString GetCurrentModuleDir()
{
	TCHAR szPath[MAX_PATH + 1] = { 0 };
	if (0 == ::GetModuleFileName((HMODULE)&amp;amp;amp;__ImageBase, szPath, MAX_PATH))
		return L&amp;quot;&amp;quot;;

	::PathRemoveFileSpec(szPath);

	CString...]]></description><category></category></item><item><title><![CDATA[简易解包程序]]></title><link>https://blog.youkuaiyun.com/yi_ming_he/article/details/77689453</link><guid>https://blog.youkuaiyun.com/yi_ming_he/article/details/77689453</guid><author>yi_ming_he</author><pubDate>Tue, 29 Aug 2017 23:07:01 +0800</pubDate><description><![CDATA[对压缩包进行解压。简易压缩程序请参考博客的另外一篇文章： 
http://blog.youkuaiyun.com/yi_ming_he/article/details/77689405解包方式： 
根据打包建立的索引表，找到对应的文件信息，逐个释放出来即可。使用方法： 
1.可以直接运行UnpacketFiles.exe进行解包，只需要把files.pak文件放入和UnpacketFiles.exe同一级目录即]]></description><category></category></item><item><title><![CDATA[简易文件打包程序]]></title><link>https://blog.youkuaiyun.com/yi_ming_he/article/details/77689405</link><guid>https://blog.youkuaiyun.com/yi_ming_he/article/details/77689405</guid><author>yi_ming_he</author><pubDate>Tue, 29 Aug 2017 23:01:16 +0800</pubDate><description><![CDATA[对指定目录下面的文件进行打包。打包方式： 
把目录下面的文件名，文件大小，偏移位置，文件内容，以索引形式保存在打包文件中使用方法：1.packetfiles.exe为打包程序 
2.运行时使用管理员权限 
3.可以直接运行packetfiles.exe进行打包，只需要把需要打包的文件放在与packetfiles.exe同一级的input目录即可（如果没有该目录需要手动创建在把文件扔进去），生成的打包]]></description><category></category></item><item><title><![CDATA[内部函数和外部函数]]></title><link>https://blog.youkuaiyun.com/yi_ming_he/article/details/75000496</link><guid>https://blog.youkuaiyun.com/yi_ming_he/article/details/75000496</guid><author>yi_ming_he</author><pubDate>Tue, 11 Jul 2017 23:46:25 +0800</pubDate><description><![CDATA[内部函数：
如果一个函数只能被本文件中其它函数所调用，它称为内部函数。在定义内部函数时，在函数名和函数类型的前面加static。
内部函数又称静态函数。使用内部函数，可以使函数只局限于所在文件，如果在不同的文件中有同名的内部函数，互不干扰。这样不同的人可以分别编写不同的函数，而不必担心所用函数是否会与其它文件中函数同名。
外部函数：
在定义函数时，如果在函数首部的最左端冠以关键字extern， 则表]]></description><category></category></item><item><title><![CDATA[自定义CString类]]></title><link>https://blog.youkuaiyun.com/yi_ming_he/article/details/75000397</link><guid>https://blog.youkuaiyun.com/yi_ming_he/article/details/75000397</guid><author>yi_ming_he</author><pubDate>Tue, 11 Jul 2017 23:29:04 +0800</pubDate><description><![CDATA[问题描述：自定义一个CString类，包括获取字符串长度，字符串查找，字符串比较，字符串取子串等都自己来实现。参考代码：MyString.h文件#pragma once#include <iostream>
#include <assert.h>
#include <stdarg.h>class CMyString
{
    friend std::ostream& operator<< (std]]></description><category></category></item><item><title><![CDATA[自己实现strcat函数]]></title><link>https://blog.youkuaiyun.com/yi_ming_he/article/details/74612841</link><guid>https://blog.youkuaiyun.com/yi_ming_he/article/details/74612841</guid><author>yi_ming_he</author><pubDate>Thu, 06 Jul 2017 21:41:55 +0800</pubDate><description><![CDATA[问题描述：自己实现一个MyStrcat函数，要和C语言库函数的strcat函数完成同样的功能。问题分析：  
首先我们要了解一下strcat函数它到底做了什么事情(1) 函数原型  
char *strcat(char *dest, const char *src);(2) 函数说明dest 为目的字符串指针，src 为源字符串指针。strcat() 会将参数 src 字符串复制到参数 dest 所]]></description><category></category></item><item><title><![CDATA[根据进程名判断进程是否运行]]></title><link>https://blog.youkuaiyun.com/yi_ming_he/article/details/74015755</link><guid>https://blog.youkuaiyun.com/yi_ming_he/article/details/74015755</guid><author>yi_ming_he</author><pubDate>Fri, 30 Jun 2017 22:55:45 +0800</pubDate><description><![CDATA[问题描述：给定进程名，判断该进程是否正在运行。参考代码：#include <TlHelp32.h>BOOL IsProcessRunning(LPCTSTR lpProcessName)
{
    if (NULL == lpProcessName)
        return FALSE;    HANDLE hProcess = NULL;    
    HANDLE hProcessSn]]></description><category></category></item><item><title><![CDATA[根据目录路径递归创建目录]]></title><link>https://blog.youkuaiyun.com/yi_ming_he/article/details/74012648</link><guid>https://blog.youkuaiyun.com/yi_ming_he/article/details/74012648</guid><author>yi_ming_he</author><pubDate>Fri, 30 Jun 2017 22:18:06 +0800</pubDate><description><![CDATA[问题描述：给定一个目录路径，如果该路径不存在则创建出来。参考代码：void CorrectPath(CString& strPath)
{
    strPath.Replace(_T('/'), _T('\\'));    do 
    {
        if (strPath.Find(_T("\\\\")) == -1)
            break;        strPath.]]></description><category></category></item><item><title><![CDATA[排序算法之堆排序]]></title><link>https://blog.youkuaiyun.com/yi_ming_he/article/details/72904886</link><guid>https://blog.youkuaiyun.com/yi_ming_he/article/details/72904886</guid><author>yi_ming_he</author><pubDate>Wed, 07 Jun 2017 22:58:54 +0800</pubDate><description><![CDATA[问题描述：输入一个原始数列，把它进行升序排序，从小到大输出。例如：给定数列如下：  
5 15 99 45 12 1 90 19 33 41排序后的结果为：  
1 5 12 15 19 33 41 45 90 99堆排序的基本思想是，建立一棵完全二叉树，不断调整这棵二叉树，保持这棵二叉树一直是一个大顶堆。参考代码：#include <stdio.h>int arr[100], n;void Adj]]></description><category></category></item><item><title><![CDATA[结构体内存对齐问题]]></title><link>https://blog.youkuaiyun.com/yi_ming_he/article/details/72891419</link><guid>https://blog.youkuaiyun.com/yi_ming_he/article/details/72891419</guid><author>yi_ming_he</author><pubDate>Tue, 06 Jun 2017 23:02:11 +0800</pubDate><description><![CDATA[问题描述：结构体内存对齐问题值直接的体现就是计算结构体的sizeof占用的字节数。结构体内存对齐的几个原则，有了这几个原则，不管结构体里面是什么元素，我们都能够正确算出sizeof值（以VS2013为例）原则1： 
结构体中每一个元素放置到内存中时，它都会认为内存是以它自己的大小来划分的，因此元素放置的位置一定会在自己宽度的整数倍上开始（以结构体变量首地址为0计算）。原则2： 
在原则1的基础上，检]]></description><category></category></item><item><title><![CDATA[空瓶换汽水问题（难度：1颗星）]]></title><link>https://blog.youkuaiyun.com/yi_ming_he/article/details/72860153</link><guid>https://blog.youkuaiyun.com/yi_ming_he/article/details/72860153</guid><author>yi_ming_he</author><pubDate>Sun, 04 Jun 2017 17:21:33 +0800</pubDate><description><![CDATA[问题描述：超市规定每n个空汽水瓶可以换一瓶汽水，小李有m个空汽水瓶，最多可以换几瓶汽水（提示：可以先喝汽水，再还超市空瓶，但是一定要还哦）输入输出描述：n和m由外部输入的正整数，并且保证n的范围是【2,10000000】，m的范围是【1,10000000】，输出最多喝了多少汽水。问题分析：要求出最多喝了多少汽水，其实就是需要我们想到一种策略，能够尽可能的用完手中的空瓶，例如，如果我们手中有n-1个空]]></description><category></category></item><item><title><![CDATA[约瑟夫环问题（二）：（难度：2颗星）]]></title><link>https://blog.youkuaiyun.com/yi_ming_he/article/details/72860011</link><guid>https://blog.youkuaiyun.com/yi_ming_he/article/details/72860011</guid><author>yi_ming_he</author><pubDate>Sun, 04 Jun 2017 17:02:09 +0800</pubDate><description><![CDATA[问题描述：编号为1,2,…,n的n个人按顺时针方向围坐一圈，任选一个正整数作为报数上限m,从第一个人开始按顺时针方向从自1开始顺序报数,报道m时停止报数.报m的人出列,从他的顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有人全部出列为止,输出最后一个出列的人的编号。输入输出描述：m和n由用户输入，并且保证m和n的范围是【1,10000000】，输出最后出列的编号。问题分析：为了方便说明，我]]></description><category></category></item><item><title><![CDATA[约瑟夫环问题（一）（难度：1颗星）]]></title><link>https://blog.youkuaiyun.com/yi_ming_he/article/details/72859577</link><guid>https://blog.youkuaiyun.com/yi_ming_he/article/details/72859577</guid><author>yi_ming_he</author><pubDate>Sun, 04 Jun 2017 16:14:26 +0800</pubDate><description><![CDATA[问题描述：编号为1,2,…,n的n个人按顺时针方向围坐一圈，任选一个正整数作为报数上限m,从第一个人开始按顺时针方向从自1开始顺序报数,报道m时停止报数.报m的人出列,从他的顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有人全部出列为止,设计一个程序求出出列顺序.PS:m和n由用户输入，并且保证m和n的范围是【1,1000】，输出出列序列。问题分析：因为这个是要求出所有的出列序列，所以目前]]></description><category></category></item><item><title><![CDATA[文件内容合并]]></title><link>https://blog.youkuaiyun.com/yi_ming_he/article/details/72853803</link><guid>https://blog.youkuaiyun.com/yi_ming_he/article/details/72853803</guid><author>yi_ming_he</author><pubDate>Sat, 03 Jun 2017 18:58:59 +0800</pubDate><description><![CDATA[问题描述：把file1和file2的文件内容合并到file3。PS: 
主要用到3个函数：fopen，fgetc，fputc。参考代码：#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>#define FILEPATH1 "C:\\1.txt"
#define FILEPATH2 "C:\\2.txt"
#define FILEPATH3 "C:\\]]></description><category></category></item><item><title><![CDATA[括号匹配检测（难度：半颗星）]]></title><link>https://blog.youkuaiyun.com/yi_ming_he/article/details/72853588</link><guid>https://blog.youkuaiyun.com/yi_ming_he/article/details/72853588</guid><author>yi_ming_he</author><pubDate>Sat, 03 Jun 2017 18:13:07 +0800</pubDate><description><![CDATA[问题描述：输入一个字符串，字符串中只包含两种字符：’(‘和’)’，判断字符串的括号是否匹配，如果匹配输出YES，否则输出NO。例如： 
(())是匹配的 
()))是不匹配的参考代码：#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <stack>std::stack<char>st;int]]></description><category></category></item><item><title><![CDATA[单链表排序（函数指针）]]></title><link>https://blog.youkuaiyun.com/yi_ming_he/article/details/72853490</link><guid>https://blog.youkuaiyun.com/yi_ming_he/article/details/72853490</guid><author>yi_ming_he</author><pubDate>Sat, 03 Jun 2017 17:54:33 +0800</pubDate><description><![CDATA[问题描述：用户输入数据，构成单链表，然后对单链表进行排序，能够随意切换排序的方法（列入升序降序）。PS：要随意切换排序的方法，那么使用函数指针作为参数传入到排序函数中，那么函数指针指向的函数就可以方便的制定排序规则了。参考代码：#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <malloc]]></description><category></category></item><item><title><![CDATA[虚拟按键的判断方法]]></title><link>https://blog.youkuaiyun.com/yi_ming_he/article/details/72853262</link><guid>https://blog.youkuaiyun.com/yi_ming_he/article/details/72853262</guid><author>yi_ming_he</author><pubDate>Sat, 03 Jun 2017 17:22:28 +0800</pubDate><description><![CDATA[问题描述：判断CapsLock，Alt，Ctrl，Shift是否被按下参考代码：#include <stdio.h>
#include <windows.h>int main()
{
    while (1)
    {
        short sValue = GetKeyState(VK_CAPITAL);
        if (sValue & 0x1)//该值低位位1，则表示Caps]]></description><category></category></item><item><title><![CDATA[可逆素数（难度：半颗星）]]></title><link>https://blog.youkuaiyun.com/yi_ming_he/article/details/72852581</link><guid>https://blog.youkuaiyun.com/yi_ming_he/article/details/72852581</guid><author>yi_ming_he</author><pubDate>Sat, 03 Jun 2017 16:00:53 +0800</pubDate><description><![CDATA[问题描述：可逆素数是指该数本身是一个素数，并且把该数倒过来也是一个素数。例如：1091是一个素数，把它倒过来1901也是一个素数，所以我们就说1091是一个可逆素数（同理1901也是一个可逆素数）输出所有范围在【1000，9999】并且各位数之和是11的整数倍的可逆素数。参考代码：#include <stdio.h>int IsPrime(int n)
{//判断n是否为质数，如果是返回1，否则返回]]></description><category></category></item><item><title><![CDATA[学生管理系统（控制台版本）]]></title><link>https://blog.youkuaiyun.com/yi_ming_he/article/details/72851666</link><guid>https://blog.youkuaiyun.com/yi_ming_he/article/details/72851666</guid><author>yi_ming_he</author><pubDate>Sat, 03 Jun 2017 13:42:24 +0800</pubDate><description><![CDATA[问题描述：设计开发一个基于控制台版本的学生管理系统，该系统支持以下功能：
打印数据库中的所有信息
录入信息到数据库
根据输入关键字，删除数据库中的某个同学的信息
清空数据库
根据输入关键字，查询数据库中某个同学的信息
根据输入关键字，修改数据库中某个同学的信息
对学生信息进行排序
系统说明：
本系统暂时不用STL库中的vector或者list，而是自己用结构体实现链表
本系统暂时不用已经成熟的数据库]]></description><category></category></item><item><title><![CDATA[求解同余方程组（难度：2颗星）]]></title><link>https://blog.youkuaiyun.com/yi_ming_he/article/details/72848397</link><guid>https://blog.youkuaiyun.com/yi_ming_he/article/details/72848397</guid><author>yi_ming_he</author><pubDate>Fri, 02 Jun 2017 22:43:09 +0800</pubDate><description><![CDATA[问题描述：有一个同余方程组，有N个同余方程组成（N由用户输入），另外每个同余方程的a[i]和m[i]也又用户指定，如下所示：x≡a[1](mod m[1])  
x≡a[2](mod m[2])  
x≡a[3](mod m[3])  
x≡a[4](mod m[4])  
…  
x≡a[n](mod m[n])求x的最小正整数解。问题分析：参考我的另外一篇文章“中国剩余定理” 
http://b]]></description><category></category></item></channel></rss>