keep it simple, stupid

导航

2011年9月15日 #

大数相乘

摘要: #include <stdio.h>#include <assert.h>void BigNumMultiply(const char *str1, const char *str2, char *product){ assert(str1 != NULL && str2 != NULL && product != NULL); int i, j; int len1 = (int)strlen(str1); int len2 = (int)strlen(str2); int *dest = (int*)malloc(sizeof(int) 阅读全文

posted @ 2011-09-15 17:17 tujiaw 阅读(165) 评论(0) 推荐(0)

2011年9月9日 #

KMP算法

摘要: // 求子串nextval[]数组// 如: // 元素编号 0 1 2 3 4 5 6 7// 子串 a b a a b c a c// next值 -1 0 0 1 1 2 0 1// nextval值 -1 0 -1 1 0 2 -1 1//// 求next值,根据前一位(假如其字符为x)求后一位,如果字符x与其next值对应的字符相等则后一位在前一位的基础上加1。// 如... 阅读全文

posted @ 2011-09-09 17:27 tujiaw 阅读(190) 评论(0) 推荐(0)

2011年9月8日 #

将一个长度为n的字符串向左循环移动m位

摘要: // 将一个长度为n的字符串向左循环移动m位,如:hello,world向左移动3位就变成了lo,worldhel// 思路:把字符串切成长为m和n-m的两半,先分别对两部分进行逆序,最后对整个字符串逆序。#include <iostream>using namespace std;void ReverseString(char * const str, const int count);void RotateLeft(char *str, int num);int _tmain(int argc, char *argv[]){ char str[] = "hello,w 阅读全文

posted @ 2011-09-08 11:52 tujiaw 阅读(526) 评论(0) 推荐(0)

将字符串中的单词进行倒序

摘要: // 将字符串中的单词进行倒序,如:hello,world 倒序后:world,hello// 思路:先将整篇文章进行倒序,然后将所有单词进行倒序// 整篇文章倒序:dlrow,olleh// 所有单词倒序:world,hello#include <iostream>using namespace std;void ReverseString(char * const str, const int count);void ReverseAllWord(char *str);int _tmain(int argc, char *argv[]){ char str[] = " 阅读全文

posted @ 2011-09-08 11:25 tujiaw 阅读(351) 评论(0) 推荐(0)

2011年9月7日 #

C/C++面试题(整理)

摘要: 1.new、delete、malloc、free关系答:new和delete,malloc和free都可以用来申请动态内存和释放内存。malloc和free是C/C++语言的标准库函数,new和delete是C++的运算符。new和delete在分配内存时会执行构造函数,delete在释放内存时会执行析构函数。2.delete与delete []区别答:delete只会调用一次析构函数,而delete[]会调用每个成员的析构函数。在More Effective C++中这样解释的:“当delete 操作符用于数组时,它为每个数组元素调用析构函数,然后调用operator delete来释放内存 阅读全文

posted @ 2011-09-07 10:06 tujiaw 阅读(481) 评论(0) 推荐(0)

2011年9月6日 #

字符编解码的故事(ASCII,ANSI,Unicode,Utf-8)

摘要: 很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物。他们认为8个开关状态作为原子单位很好,于是他们把这称为"字节"。再后来,他们又做了一些可以处理这些字节的机器,机器开动了,可以用字节来组合出更多的状态,状态开始变来变去。他们看到这样是好的,于是它们就这机器称为"计算机"。开始计算机只在美国用。八位的字节一共可以组合出256(2的8次方)种不同的状态。他们把其中的编号从0开始的32种状态分别规定了特殊的用途,一但终端设备或者打印机遇上这些约定好的字节时,就要做一些约定的动作。遇上00x10,终端就换行,遇上0x0 阅读全文

posted @ 2011-09-06 15:54 tujiaw 阅读(232) 评论(0) 推荐(0)

C++多态的实现原理

摘要: 1. 用virtual关键字申明的函数叫做虚函数,虚函数肯定是类的成员函数。2. 存在虚函数的类都有一个一维的虚函数表叫做虚表。类的对象有一个指向虚表开始的虚指针。虚表是和类对应的,虚表指针是和对象对应的。3. 多态性是一个接口多种实现,是面向对象的核心。分为类的多态性和函数的多态性。4. 多态用虚函数来实现,结合动态绑定。5. 纯虚函数是虚函数再加上= 0。6. 抽象类是指包括至少一个纯虚函数的类。纯虚函数:virtual void breathe()=0;即抽象类!必须在子类实现这个函数!即先有名称,没内容,在派生类实现内容!我们先看一个例子:#include <iostream.h 阅读全文

posted @ 2011-09-06 15:13 tujiaw 阅读(231) 评论(0) 推荐(0)

2011年8月30日 #

怎样在对话框上做一个“应用”按钮

摘要: 描述:当用户打开对话框的时候“应用”按钮处于不可用状态(变灰);当用户点击了对话框中的某个控件的时候让其处于可用状态;当用户点击了“应用”按钮后让其变灰;1.定义两个消息:#define WM_APPLY_TRUE WM_USER + 10 // 使应用按钮处于可用状态#define WM_APPLY_FALSE WM_USER + 11 // 使应用按钮处于不可用状态(变灰)2.在Main对话框中实现这两个消息:消息映射MESSAGE_HANDLER(WM_APPLY_TRUE, OnApplyTrue)MESSAGE_HANDLER(WM_APPLY_FALSE, OnApplyFal.. 阅读全文

posted @ 2011-08-30 17:39 tujiaw 阅读(302) 评论(0) 推荐(0)

2011年8月17日 #

对char与wchar_t一些疑惑的理解

摘要: 对于char和wchar_t我们知道前者用来存储一个字节后者可以用来存储两个字节,所以像字母数字之类的ascii编码的字符都可以用char来存储。然而,汉字是需要两个字节才能存储的,所以用wchar_t才能符合我们的需求。但是我们经常看到char用于一些汉字方面的处理,这样就产生了一些疑惑, 如:1>char a[] = "你好";printf("%s\n", a);输出结果:你好解释:按理说char只能存一个字节也就是半个汉字,那为什么可以输出我们希望的结果呢?我们用strlen(a)可以得到结果为4,看来确实是一个char只存了一个字节,2个汉 阅读全文

posted @ 2011-08-17 15:23 tujiaw 阅读(329) 评论(0) 推荐(0)

2011年8月15日 #

多文件统计字频

摘要: 假如有60个文件, 文件名为:zipin1.txt到zipin60.txt文件格式(词语是汉字串,词频是数字):词语 词频词语 词频...所有文件中的词语包括顺序都是一样的,只是词频不一样, 现在要把所有文件中相同词语的词频加起来以相同的格式写到main.txt文件中。#include <windows.h>#include <iostream>#include <fstream>#include <string>#include <vector>using namespace std;const int g_line = 64;cl 阅读全文

posted @ 2011-08-15 16:34 tujiaw 阅读(214) 评论(0) 推荐(0)