c
haoshenwang
Alibaba大神
展开
-
char str[] = {"hello world"}以及字符串终止符'\0'辨析
自己试试下就能弄得非常明白了(vc6.0下测试)#include #include int main(){ char str1[] = {"hello world"};//数组有12个元素,包括'\0' char str2[12] = {"hello world"};//数组有12个元素,包括'\0' char str3[11] = {'h','e','l','l'原创 2013-09-10 09:37:30 · 4430 阅读 · 0 评论 -
经典排序算法设计与分析(插入排序、冒泡排序、选择排序、shell排序、快速排序、堆排序、分配排序、基数排序、桶排序、归并排序)
经典的内排序算法有:插入排序、冒泡排序、选择排序、shell排序、快速排序、堆排序、分配排序、基数排序、桶排序为了分析所有的排序情况,给出一个模板程序用于测试,通过改写mySort函数来实现不同的排序算法。测试环境为vc++6.0。可以通过改变SIZE的大小来减少或增长排序所需的时间。#include #include #include //元素的数目#define SI原创 2013-11-12 23:21:51 · 6541 阅读 · 4 评论 -
apue.h及编程环境配置
apue全称指的是Advanced Programming in the UNIX Environment,即由超级大神W.Richard Stevens 写的unix环境高级编程。这本书可以算的上是unix环境编程的圣经,小弟不才,将一些学习经验分享,大家就仁者见仁智者见智吧。由于书中的示例包含的文件很多,而版面有限,那么就来看看作者自己编写的头文件吧。这个头文件主要包含了经常要用到的头文件原创 2013-12-01 13:13:16 · 1391 阅读 · 0 评论 -
unix环境下文件I/O函数
1.符号描述符首先要记住,对于所有打开的文件系统都是通过文件描述符来引用的。文件描述符是一个非负整数。在unix系统中(大部分系统也是这样),用0代表标准输入流,用1代表标准输出流,用2代表标准错误流。在头文件中定义了STDIN_FILENO,STDOUT_FILENO以及STDERR_FILENO。2.open函数open函数可以打开或者创建一个文件,函数原型如下#inc原创 2013-12-01 15:58:47 · 1325 阅读 · 0 评论 -
最简单的快速排序代码
#include //将Int数组a中的第i个元素和第j个元素互换void swap(int a[],int i,int j){ int tmp = a[i]; a[i] = a[j]; a[j] =tmp;}//以第一个元素作为划分,将它放入中间int partition(int a[],int start,int end){ int i = start; int原创 2014-04-18 14:34:04 · 6572 阅读 · 2 评论 -
拒绝switch,程序加速之函数指针数组
先看一个使用switch语句的程序:#include #include //加法int add(int a,int b){ return a+b;}//减法int subtract(int a,int b){ return a-b;}//乘法int multi(int a,int b){ return a*b;}//除法int divide(int原创 2015-04-02 13:11:33 · 2539 阅读 · 3 评论 -
C/C++ static全局变量和static局部变量
1.static全局变量不能被其他源文件通过extern进行引用访问。2.static局部变量的值在函数执行完毕,仍然可以保留下来。原创 2015-04-02 09:42:51 · 1689 阅读 · 0 评论 -
八皇后问题
源代码:/************************************************************************//* author : 王浩time : 2015/10/16问题描述:八皇后问题输出:八皇后问题的解的数目,以及具体的排列情况分析:八皇后的棋盘设置为row[0,7],col[0,7],左上角为(0,0)规律:原创 2015-10-16 11:04:26 · 820 阅读 · 0 评论 -
大小端模式及字符集问题代码测试
大小端模式的理论知识见:http://blog.csdn.net/hackbuteer1/article/details/7722667验证代码//字符集问题;#include #include #include int main(){ //测试字符集; char *pc = "Hello!"; char pca[] = "Hello!"; wchar_t *pw原创 2015-12-16 17:10:40 · 783 阅读 · 0 评论 -
生成1-N*N的矩阵,一圈一圈的
#include using namespace std;int N;int data[100][100];bool visit[100][100];void getNext(int status, int& nx, int &ny){ switch (status) { case 0: //right nx = 0, ny = 1; break; case 1:原创 2016-04-03 20:50:33 · 1259 阅读 · 0 评论 -
基于POSIX下REGEX库的文本URL过滤(C/C++语言)
URL过滤报告URL过滤需求分析:输入为带中文、英文、标点符号、特殊符号等的字符串,输出也是字符串,但有以下要求:1.把输入字符串中的网站URL(以“http://”开头)、文件URL(以“.xxx(若干个x)结尾”)的子串找到,并删除。2.将其他的无关字符串原样保留,去除需要过滤的URL之后,直接拼接。3.输出去掉所有URL,其他保持不变的字符串。 URL过滤技术分析原创 2016-06-19 17:01:49 · 2418 阅读 · 0 评论 -
C++ String
constructors string(); string( size_type length, char ch ); string( const char *str ); string( const char *str, size_type length ); string( string &str, size_type index, size_type length ); str原创 2016-08-01 11:27:57 · 508 阅读 · 0 评论 -
linux中C语言函数:数据结构函数(二分查找、二叉树、哈希表、线性搜索)
1. qsort 、bsearch包含头文件:#includevoid qsort(void *base , size_t nmemb , size_t size,int(*comopare)(const void*elem1,const void *elem2))void *bsearch(const void*key , const void*base , siez_t nme原创 2013-11-06 22:36:03 · 3092 阅读 · 0 评论 -
linux中C语言函数:字符串处理函数
所有函数的头文件都为bcmp :比较两个内存中的内容bcopy : 复制内存中的内容bzero : 将一个内存内容全清零ffs : 在一个整数中查找第一个值为真的位index : 查找字符串中第一个出现的指定字符memccpy :复制内存中的内容memchr :在一块内存指定范围内查找一个指定字符memcmp :比较内存中存放的内容memcpy : 复制一块内存内容到另一块memfrob原创 2013-11-06 19:45:09 · 4756 阅读 · 0 评论 -
指针与数组的关系
现有一字符数组str[10],那么就有:数组名str 就是数组元素str[0] 的地址,即数组首地址(str = &str[0]) .试试下面的程序,理解更清楚原创 2013-09-10 10:02:40 · 1237 阅读 · 0 评论 -
谈计算机对'\0'和null的处理
#include int main(){ char a = '\0'; char *p = NULL; if (a) { printf(" '\0' is true\n"); } if (p) { printf(" 'p' is true\n"); } if (a==0) { printf(" '\\0' equals zero \n"); } i原创 2013-09-10 10:26:50 · 818 阅读 · 0 评论 -
回溯法解决N皇后问题
/** 使用回溯法解决n皇后问题*/#include #include #define NUM 8 //皇后的数目int chess[NUM]; //依次表示每个皇后所在的列数int count = 0;//总的解数 //表示能否在第i行value列放置皇后,行数是从0开始bool canPlaced(int i,int value){ //第0行的皇后可以任意摆放 i原创 2013-09-10 20:48:05 · 1376 阅读 · 0 评论 -
str[] , *str , static str[]的区别
#include //str[]存在于getStr1的栈中,函数返回后就不存在了char* getStr1(){ char str[] = "hello world"; return str;}//*str存在于全局变量区中char* getStr2(){ char* str = "hello world"; return str;}//static变量存在于全局变原创 2013-09-12 14:10:19 · 1692 阅读 · 0 评论 -
数据在全局变量区(堆)和局部变量区(栈)上存储顺序是增还是减
#include int qj1 = 1;int qj2 = 2;int main(){ printf("%p %p %s\n",&qj1,&qj2,(&qj2-&qj1>0)?"增加":"减少"); char *s1 = "hello"; char *s2 = "world"; printf("%p %p %s\n",s1,s2,(s2-s1>0)?"增加":"减少");原创 2013-09-12 16:16:56 · 1886 阅读 · 2 评论 -
使用指向指针的指针进行动态内存分配
#include #include #include /*void getMemory(char *p,int num){ //这里实质是对str的形参p进行操作,函数结束后,str的值认为Null p = (char*)malloc(sizeof(char)*num);}int main(){ char *str = NULL; getMemory(str,100);原创 2013-09-12 12:47:24 · 2025 阅读 · 0 评论 -
const int *p 和 int* const p 的区别详解
const int * p : const右边接近于int这个类型声明,意思是有个指针p,指向的是一个int型的整数常量。即p可变,*p不可变。int * const p(或int const *p): const右边接近于*这个类型声明,意思是有个指向整数的常指针。即p不可变,*p可变。原创 2013-09-09 16:54:01 · 10455 阅读 · 2 评论 -
char * str中的str(%s),*str,str(地址),&str,&str[0]之间的不同关系
#include int main(){char *str = "hello world";printf("str=%s\n",str);//hello worldprintf("*str=%c\n",*str);//h,将格式符换为%s没结果(‘\0不可知’printf("&str=%p\n",&str);//0012FF44return 0;}原创 2013-09-12 14:04:11 · 2750 阅读 · 0 评论 -
引用,const声明时必须初始化
试试下面例子,你就知道了原创 2013-09-12 12:19:44 · 8421 阅读 · 1 评论 -
如何区别指针数组和数组指针 && 如何区别函数指针和指针函数
首先看看下面两条语句(1) int * p[4] (2) int (*p)[4]如何区分它们呢?我们的判断条件是方括号("[ ]")的优先级要高于星号(' * ')(1) p首先和方括号结合,表示数组,然后与星号结合表示指针,总的来说p表示一个长度为4的数组,数组的元素都是指针。p就是指针数组。(2)p与星号结合,表还是指针,在和方括号结合表示数组,总的来说p表示一个指针,原创 2013-09-12 14:53:25 · 1106 阅读 · 0 评论 -
指针加减时需要注意的问题
首先看下面这个程序#include int main(){ int a[] = {1,2,3,4,5}; int *p = (int*)(&a+1); printf("%d\n",*(p-1)); return 0;}结果是5,分析如下:指针加减时(如p++)结果主要是由p的类型决定的,在这个例子中a表示一个int[5]型数组,那么&a就表示一个指向数组的指针,原创 2013-09-12 15:39:19 · 1010 阅读 · 0 评论 -
C++ Bitset
Constructors#include #include #include using namespace std;int main(int argc, char *argv[]){ // 默认构造函数,所有位初始化为0 bitset bs1; bitset bs2(0xfa2); bitset bs3(string("0101111001")); cout << s原创 2016-08-01 15:33:43 · 656 阅读 · 0 评论