随笔分类 - C/C++
编程语言和环境搭建
摘要:Berkeley Socket API – Creating a TCP/IP Server in CProgramming LanguagesCAPIBerkeley Socket APIWhat are sockets?“In computer networking, an Internetsocket (or commonly, a network socket or socket) is the endpoint of a bidirectional inter-process communication flow across an Internet Protocol-based c
阅读全文
摘要:作者:iTech出处:http://itech.cnblogs.com/[C++对象模型][1]目录与参考C++对象模型系列:本系列是主要是作者经验的总结且同时参考了大量的网络文章,希望能够给C++的学习者有所帮助,但是由于作者水平有限,难免有错,希望大家能够指出,我将虚心地向大家学习,与大家共同进步!本系列的开发环境是Windows 32+VS2008。文章:指针和引用指针与数组指针与字符串堆栈与函数调用sizeof与对象内存布局单继承与虚函数表多重继承与虚函数表虚继承与虚函数表类型转化参考:1) C++对象模型C++对象模型笔记:http://blog.csdn.net/ZengMuAnS
阅读全文
摘要:写成函数/* * ===================================================================================== * * Filename: strtrim.c * * Description: 删除字符串头部和末尾的空格 * * Version: 1.0 * Created: 08/30/2011 05:59:33 PM * Revision: none * Compiler: gcc * * Author: YOUR...
阅读全文
摘要:其实atoi比较简单些。一般处理也简单(无须考虑基数等问题,默认10为底),无非要注意符号的处理和可能的空格处理。#include <ctype.h>int yang_atoi ( const char * str ){ int n=0; int sign; char *p = (char *)str; while(isspace(*p)) ++p; sign = (*p == '-')?-1:1; if((*p == '+')||(*p)=='-') ++p; while(isdigit(*p)) n = 1...
阅读全文
摘要:部分文字摘自《程序员面试题精选100题(51)-顺时针打印矩阵 》题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。例如:如果输入如下矩阵:12345678910111213141516则依次打印出数字1, 2, 3, 4, 8, 12, 16, 15, 14, 13, 9, 5, 6, 7, 11, 10。对于该题,作者举例两个就得出 “让循环继续的条件是columns > startX * 2 && rows > startY * 2。”,实在不是能够理解。所以参考评论中的解答,写出如下代码。请重点关注二维数组作为参数的传递问题,参考《C++中
阅读全文
摘要:众所周知,程序为了提高访问效率,编译器在编译的时候,进行字节对齐。程序员也可以字节指定对齐方式。Win32下的为progma指令,具体来说#pragma pack(push) //保存原对齐状态#pragma pack(4)//设定为4字节对齐struct test{ int a;};#pragma pack(pop)//恢复对齐状态在linux下,gcc是默认的编译器。g++ 支持progma指令,gcc也支持GNU扩展__attribute__指令参考《__attribute__》,对于字节对齐的举例为struct test{ short b[3];} __attribute__ ((al
阅读全文
摘要:看到BaiDu的笔试题一道。已知一个字串由GBK汉字和ansi编码的数字字母混合组成,编写C语言函数实现从中去掉所有ansi编码的的数字和字母(包括大小写),要求在原字串上返回结果。函数接口为:int filter_ansi(char* gbk_string)。注:汉字的GBK编码范围是 0x8140 - 0xFEFE。其实这题的思想与 在字符串中删除特定的字符 类似,事实上还要简单,因为没有过滤规则(参考博文后一个参数可以看成是过滤规则)。汉字编码常用的有GBK和GB2312,一般用双字表示,为了区分ansi编码,其最高位一般为1。下面写成代码如下#include <stdio.h&g
阅读全文
摘要:Notepad果真是程序员必备啊。有兴趣的同学也可以关注下PSPad,提供Project管理功能,对编辑网页(js)等有更好的支持(暂时用不到)。《免费文本编辑器–PSPad功能介绍及评测》以下内容转载自http://www.codecho.com/notepad-change-or-self-make-theme/新版的notepad++都支持更换主题,方法很简单:菜单上的“设置–语言格式设置,就可以选择不同的主题了。若是觉得这些主题不满意,你还可以自己定制更多主题,使用的是TextMate——The Missing Editor for Mac OS X,这个里面有很多漂亮的主题,不过格式
阅读全文
摘要:Print an integer using only putchar. Try doing it without using extra storage.1)void printInt(int a){ int b = a; char *str; int i = 1; int len = 0; while (b) { b /= 10; i *= 10; len++; } i /= 10; while (i > 0) { putchar(a/i + 48); a = a%i; i /= 10; }} 2)Thiscanbedonebyrecursion.Sincethenumberofre
阅读全文
摘要:更详细的参数说明参考http://www.cplusplus.com/reference/string/string/string 函数列表 函数名描述begin得到指向字符串开头的Iteratorend得到指向字符串结尾的Iteratorrbegin得到指向反向字符串开头的Iteratorrend得到指向反向字符串结尾的Iteratorsize得到字符串的大小length和size函数功能相同max_size字符串可能的最大大小capacity在不重新分配内存的情况下,字符串可能的大小empty判断是否为空operator[]取第几个元素,相当于数组c_str取得C风格的const char
阅读全文
摘要:TinyXML是目前非常流行的一款基于DOM模型的XML解析器,简单易用且小巧玲珑,非常适合存储简单数据,配置文件,对象序列化等数据量不是很大的操作,其主页是:http://www.grinninglizard.com/tinyxml/TinyXML的使用TinyXML直接引用到工程中即可,如果想做成链接库的形式。可以修改Makefile具体方法为1.OUTPUT := xmltest一行修改为:OUTPUT := libtinyxml.a 2.将xmltest.cpp从变量SRCS中删除,并注释掉xmltest.o:tinyxml.h tinystr.h。因为不需要将演示程序添加到动态库中。
阅读全文
摘要:字符处理库函数void *memccpy (void *dest, const void *src, int c, size_t n);从src所指向的对象复制n个字符到dest所指向的对象中。如果复制过程中遇到了字符c则停止复制,返回指针指向dest中字符c的下一个位置;否则返回NULL。void *memcpy (void *dest, const void *src, size_t n);从src所指向的对象复制n个字符到dest所指向的对象中。返回指针为dest的值。void *memchr (const void *s, int c, size_t n);在s所指向的对象的前n个字符
阅读全文
摘要:无聊写的程序,验证些语法知识#include <stdio.h>struct main{ #define MAX_SIZE 19900 int count ;};struct super{ #define MAX_SIZE 100 int count; char ch;};int main(){ struct main hunter; hunter.count = MAX_SIZE; struct super main; main.count = MAX_SIZE; printf("Hello World %d \t %d\n",hunter.count,mai
阅读全文
摘要:以下文字摘自 http://zhedahht.blog.163.com/blog/static/25411174200952174133707/题目:输入一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的一个。例如输入数组{32, 321},则输出这两个能排成的最小数字32132。请给出解决问题的算法,并证明该算法。分析:这是09年6月份百度新鲜出炉的一道面试题,从这道题我们可以看出百度对应聘者在算法方面有很高的要求。这道题其实是希望我们能找到一个排序规则,根据这个规则排出来的数组能排成一个最小的数字。要确定排序规则,就得比较两个数字,也就是给出两个数字m和n,我们需要确定
阅读全文
摘要:找一个数据流中丢失的一个数字。该数据流中一直是0--------100000000(比较大)的数,求被丢失的数字。@modified昨天很同学讨论的时候,题目需要加一个限制性的条件——N为四的倍数,即通过三个数,找出丢失的数字。#include <stdio.h>#include <stdlib.h>#define max_size 10000void swap(int *x,int *y){ int tmp; tmp = *x; *x = *y; *y = tmp;}int main(int argc,char *argv[]){ int array[max_size
阅读全文
摘要:详细解说 STL 排序(Sort)
作者Winter
阅读全文
摘要:分治策略设一组数R={r1,r2,r3....rn}为要进行全排列的n个元素,Ri=R-{ri}。将集合X中元素的全排列记为perm(X)。(ri)prem(X)表示在全排列perm(X)的每一个排列前面前面加上前缀ri得到的排列R的全排列可以归纳为: 当n=1时,perm(R)=(r),其中r是集合R中唯一元素。 当n>1时,perm(R)由(r1)perm(R1),(r2)perm(R2),....,(rn)perm(Rn) 构成。由归纳可已看出本题可以用递归分治的算法将问题分成一个一个得小模块进行求解。EG: R={1,2,3,4}ps:这里圆括号里面的顺序是不能变动的。有上数据可
阅读全文
摘要:依照KMP实现的算法,附带测试用例。#include <algorithm>#include<iostream>#include<iterator>#include <string>#include <vector>#include <cassert>#include <cstring>using namespace std;/**计算next***/void kmp_next(char *pattern,int *next){ int i = 0 ; int j = next[0] = -1; while(p
阅读全文
摘要:转载自文章
http://www.cppblog.com/acronix/archive/2010/09/24/127536.aspx
阅读全文
posted @ 2011-05-01 22:03
westfly
摘要:参考http://www.cnitblog.com/schkui/archive/2007/07/02/29320.html若干经典的字符串哈希函数http://blog.csdn.net/Java2King/archive/2009/10/25/4725280.aspx某些hash函数的实现http://www.byvoid.com/blog/string-hash-compare/字符串hash效率的比较
阅读全文

浙公网安备 33010602011771号