c语言
nujsuez
这个作者很懒,什么都没留下…
展开
-
c 实现斐波那契(fibonacii)数列
long int fib(long int num){ if(num ==1 || num ==2}原创 2014-04-21 17:37:07 · 1854 阅读 · 0 评论 -
c 删除字符串中的特殊字符
下面是删除特字符串中的所有空格原创 2014-04-22 15:29:03 · 1170 阅读 · 0 评论 -
c 多维数组指针(一站式编程)
一站式编程里的题目: 定义以下变量:C代码 char a[4][3][2] = {{{'a', 'b'}, {'c', 'd'}, {'e', 'f'}}, {{'g', 'h'}, {'i', 'j'}, {'k', 'l'}}, {{'m', 'n'}, {'o', 'p'}, {'q', '转载 2014-04-23 16:48:54 · 1156 阅读 · 0 评论 -
c++ 重写read 和 write
针对传输大文件时,缓冲区达到极限,而需要多次读写的情况,比如传输视频文件。重新read 和 writessize_t Readn(int fd, void* vptr, size_t n){ size_t left; ssize_t nread; char *ptr; ptr = vptr; nleft =n; while(nleft >0){ nre转载 2014-06-26 15:40:28 · 853 阅读 · 0 评论 -
c 关于整型的思考int i=-1 ; while(i--)
int _tmain(int argc, _TCHAR* argv[]){ int a = -2147483648; //32位负整数最小值 int b= 2147483647; //32位正整数最大值 printf("负整型最大值为=%d,十六进制=%x\n", a,a); printf("正整型最大值为=%d,十六进制=%x\n",b,b); printf("负整型减一为=%d原创 2014-05-29 16:55:01 · 2389 阅读 · 0 评论 -
c 查询整型中1 的个数
#include "stdafx.h"#include #include unsigned int cal(unsigned n){ unsigned c = 0; printf("%x\n",n); while (n>0) { c += n&1; n=n>>1; } return c;}转载 2014-07-28 14:27:15 · 706 阅读 · 0 评论 -
sizeof 和 strlen 有趣的操作
两个数组:char a[]原创 2014-04-14 22:01:11 · 679 阅读 · 0 评论 -
fread和read的区别
fread返回的是一个FILE结构指针而read返回的是一个int的文件号前者fopen/fread的实现是靠调用底层的open/read来实现的.fopen/fread是C标准的库函数,操作的对象是: file streamopen/read是和操作系统有关的系统调用。操作的对象是: “file descriptor”f是ANSI的C标准库。后面的转载 2014-09-29 18:34:45 · 3645 阅读 · 0 评论 -
c写的一个简单的计算器
#include #include int main(){ float a , b; char t; while(1) { int u = scanf("%f %c %f",&a,&t,&b); switch(t) { case '+': printf("%.3f%c%.3f=%.3f\n",a,t,b,a+b) ;fflush(stdin); brea原创 2014-10-10 13:57:14 · 1589 阅读 · 0 评论 -
二维数组空间是连续的
char str[][10]={"Hello","world"};char *p=str[0];count原创 2014-10-03 23:25:09 · 2684 阅读 · 0 评论 -
c 全局静态变量的实例解释其作用域
glo.h 文件#pragma oncestatic int glo;one.h 文件void getone();one.cpp 文件#include "stdafx.h"#include "glovar.h"#include "one.h"void getone(){ glo = 13; printf("one: glo is %d \n",glo);}two.原创 2015-02-27 18:53:38 · 1073 阅读 · 0 评论 -
trim 函数c实现
1 #include 2 #include 3 #include 4 5 6 char* mytrim(char* sDes, const char* sSrc) 7 { 8 if(sSrc == NULL || sDes == NULL) 9 return NULL; 10 char* t原创 2015-04-13 18:43:54 · 901 阅读 · 0 评论 -
linux 调试多线程
原文:http://www.cnblogs.com/cy568searchx/archive/2013/10/28/3391790.html你的软件在某个时刻停止服务,CPU占用达到100%+,这种问题一个可能的原因是产生了死循环,假设程序某处存在潜在的死循环,并在某种条件下会引发,本文以一个示例来定位出现死循环的位置。当程序某处存在死循环,通常定位问题及缩小范围的方法是,在可疑的转载 2015-04-16 17:09:06 · 1076 阅读 · 0 评论 -
c 判断链表是否有环,以及环上结点数
给一个头指针head,判断链表LinkNode 是否有环,环上结点数void IsLinkLoop(LinkNode *head){ if (head ==NULL) { return NULL; } LinkNode *p=head, *q = head; bool isLoop = false; while(q && q->next) { p = p->n原创 2014-04-21 15:18:18 · 883 阅读 · 0 评论 -
c 判断两个链表是否相交
只需判断两个链表是否有共同结点。1. 如果两个原创 2014-04-21 16:21:12 · 852 阅读 · 0 评论 -
__cdecl , __fastcall 和__stdcall区别
三者都称为调用约定( Calling convention )1)决定函数参数的压栈顺序2)由调用者还是被调用者把参数弹出栈3)产生函数修饰名的方式__stdcall 程序如果使用了__stdcall 关键字,或者设置了/Gz 编译选项,__stdcall 这种调用方式就会生效,WIN32 API都采用__stdcall调用方式。函数参数采用从右到左的压栈方式;被调函数在返原创 2012-12-04 16:53:16 · 851 阅读 · 0 评论 -
strstr在vc runtime 里的实现以及测试代码
#include "stdafx.h"#include /****strstr.c - search for one string inside another** Copyright (c) Microsoft Corporation. All rights reserved.**Purpose:* defines strstr() - search for原创 2012-08-17 17:53:27 · 1090 阅读 · 0 评论 -
typedef与#define 的区别与各自优势
先用一个简单的例子介绍下typdef例子1:typedef struct node{ char* data; struct node *lchild,*rchild;}bitnode;bitnode* bNode;作用:struct node是一个结构体的类型名 就像是int是个类型名一样;如果不加typedef,就需要struct node *bNode这原创 2012-11-11 17:29:32 · 601 阅读 · 0 评论 -
strncpy 在 vc runtime 里的实现以及测试代码
#include "stdafx.h"#include /*****Purpose:* defines strncpy() - ************************************************************/char *__cdecl My_strncpy(char *dest, const char* src,size原创 2012-11-20 15:05:04 · 450 阅读 · 0 评论 -
求1+2+3+..+n 和1*2*3*...*n递归
UINT sum(UINT num){ return (num==0)?0:(num+sum(num-1));}UINT factorial(UINT num){ return (num==1) ? 1:(num*factorial(num-1));}原创 2013-05-10 11:12:22 · 1533 阅读 · 0 评论 -
c 打开文件方式(二进制和文本)
c语言文件操作的一个问题: c语言中打开文件有两种方式,一种是二进制方式,另一种是文本方式(ASCII码方式)。这两种方式有什么区别?(对于Linux这种只有一种文件类型的操作系统来说是没有区别的) 我们就以windows为例说说区别: a.以文本方式打开文件,若将数据写入文件,如果遇到换行符'\n'(ASII 值为10,0A),则会转换为回车—换行'\r\n'转载 2013-09-05 15:16:40 · 2469 阅读 · 0 评论 -
memcpy 和 strcpy 的区别
strcpy和memcpy都是标准C库函数,它们有下面的特点。strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符。已知strcpy函数的原型是:char* strcpy(char* dest, const char* src);memcpy提供了一般内存的复制。即memcpy对于需要复制的内容没有限制,因此用途更广。void *memcpy(转载 2014-02-10 17:55:46 · 584 阅读 · 0 评论 -
static_cast 和 dynamic_cast 区别
1. 语法 static_cast ( expression ) dynamic_cast ( expression )2. 用法static_cast:①用于类层次结构中基类(父类)和派生类(子类)之间指针或引用的转换。进行上行转换(把派生类的指针或引用转换成基类表示)是安全的;进行下行转换(把基类指针或引用转换成派生类表示)时,由于没有动态类型检查,所以是不安全转载 2014-02-12 14:36:22 · 778 阅读 · 0 评论 -
sizeof 关于内存对齐的理解
struct t1{char a;short b;}sizeof(t1) = 4 ,此时内存按2的倍数分配 类似 : 编号/内存4 * * * *0 a * b b如果增加一个变成 char a; short b; char c; sizeof(t1) =6 , 因为内存按2的倍数分配,所以多一个c会多分配两个字节类似:编号原创 2014-02-12 17:37:53 · 872 阅读 · 0 评论 -
linux man 命令查询系统函数
man的分卷号,分成很多部分,分别是: 1 用户命令, 可由任何人启动的。 2 系统调用, 即由内核提供的函数。 3 例程, 即库函数,比如标准C库libc。 4 设备, 即/dev目录下的特殊文件。 5 文件格式描述, 例如/etc/passwd。。。。。例如:如果查询read函数 man 2 read原创 2014-03-10 13:25:29 · 4219 阅读 · 0 评论 -
linux 关于while((n=read(STDIN_FILENO,buf,BUFFSIZE)) > 0)
#include #include #include #include #include #include #define BUFFSIZE 4int main(void){ int n; char buf[BUFFSIZE]; while((n=read(STDIN_FILENO,buf,BUFFSIZE)) >原创 2014-03-10 16:22:11 · 4681 阅读 · 0 评论 -
linux STDIN_FILENO 和STDIN 的区别
STDIN 属于标准库处理的输入流,其声明为 FILE 型的,对应的函数前面都有f开头,如fopen/fread/fwrite/fclose 标准库调用等STDIN_FILENO属于系统API接口库,其声明为 int 型,是一个打开文件句柄,对应的函数主要包括 open/read/write/close 等系统级调用。标准库内封装了系统 API 调用,如 fread 内部实现调转载 2014-03-10 14:07:39 · 1479 阅读 · 0 评论 -
链表逆序
#include #include typedef struct node { int data; struct node *next;}Node;//创建链表Node *CreatList(void){ int val, i, n; Node *phead, *p, *q; phead = NULL; printf("请输入您要建立的链表长度:\n"); sca转载 2014-04-16 22:20:29 · 544 阅读 · 0 评论 -
使用ifstream ofstream重定向输入输出 c++
//使用ifstream和ofstream及cin和cout的rdbuf()#include #include using namespace std;int main(){ printf(" 使用ifstream和ofstream及cin和cout的rdbuf()来改变控制台的标准输入输出\n"); //将控制台的标准输入输出改成从文件中读取写入 ifstream i转载 2014-04-03 23:56:46 · 3125 阅读 · 1 评论 -
next数组的求解思路
void makeNext(const char P[],int next[]){ int q,k;//q:模版字符串下标;k:最大前后缀长度 int m = strlen(P);//模版字符串长度 next[0] = 0;//模版字符串的第一个字符的最大前后缀长度为0 for (q = 1,k = 0; q < m; ++q)//for循环,从第二个字符开始,依转载 2015-05-07 11:54:42 · 705 阅读 · 0 评论