随笔分类 - C
摘要:#include #include #define LEN 1024void main(){ char s[LEN] = ""; int i; while(1) { printf("字符串:"); gets(s); printf("输出: \n"); int len = strlen(s); for(i=0; i< len;i++) printf("%02X ",(unsigned char)s[i]); printf("\n--------------------...
阅读全文
摘要:条件:获取网络适配器需要WinpCap开发平台。平台下载地址:http://www.winpcap.org本人用的开发平台:WpdPack_4_1_2文件预览如下图:Include里的文件如下:Lib里的文件如下:使用开发工具:vc++ 6.0写程序之前,需要对vc++ 6.0做一些配置。以下是详细的配置过程:1,打开 工程->>设置->>C/C++,将WPCAP,HAVE_REMOTE 添加到预处理程序定义后,点确定。如图: 2,打开 工具->>选项->>目录->>选择 include files -->>将WpdPac
阅读全文
摘要:我在实际编码的时候,实质上很少用到数组指针。于是,对于数组指针,总给我一种模糊的感觉。 花了一上午时间专门去研究数组指针,数组指针终于在我心中终于变的明朗起来。 何为数组指针? 数组指针:就是指向数组的指针。说到底还是指针,只不过数组指针指向的对象是数组而已。 在要搞清楚数组指针之前,必须先要把指针
阅读全文
摘要:#include#include#include//两个大数相加 char* add(char *s1,char *s2,char *c){ char *s=c; int i=strlen(s1)-1,j=strlen(s2)-1,k=0; int flag=0; int sum; for(;i>=0&&j>=0;i--,j--,k++) { sum=(s1[i]-'0')+(s2[j]-'0')+flag; (flag=sum>9)?(c[k]=sum%10+'0'):(c[k]=sum+'0'
阅读全文
摘要:#include#include//返回s1*num 0=0;i--) { int t=(s1[i]-'0')*num+temp; str[j++]=t%10+'0'; temp=t/10; } if(temp) str[j++]=temp+'0'; str[j]=0;//形成串 strrev(str); return str; }void add1(char *s){ char *p=s; if(*s) { while(p[1]) p...
阅读全文
摘要:float类型数据占4字节。#includestruct DATA{ unsigned char d0:1; unsigned char d1:1; unsigned char d2:1; unsigned char d3:1; unsigned char d4:1; unsigned char d5:1; unsigned char d6:1; unsigned char d7:1; unsigned char d8:1; unsigned char d9:1; unsigned char d10:1; unsigned...
阅读全文
摘要:#include void strrev(char *s){ char *p=s,t; if(*p) while(p[1]) p++; while(s<p) { t=*s; *s++=*p; *p--=t; }}char* itoa(int num,char *result){ int i=0; while(num) { result[i++] = num%10 + '0'; num /= 10; } result[i]=0; ...
阅读全文
摘要:1 #include 2 //将字符串s倒叙 3 void strrev(char *s) 4 { 5 char *p=s,t; 6 if(*p) 7 while(p[1]) 8 p++; 9 while(s<p)10 {11 t=*s;12 *s++=*p;13 *p--=t;14 }15 16 }17 void main ()18 {19 char s[]="abcdef";20 strrev(s);21 puts(s);22 }23 ...
阅读全文
摘要:void BinToHex(char *bin,char *hex){ int d=0; while(*bin)d=d*2+*bin++-'0'; sprintf(hex,"%X",d);}
阅读全文
摘要:1,打开vc6.0集成开发工具,新建win32 static Library ,为工程取个名字:实现两个整数交换,然后点确定,如图:2,直接点击完成,如图:3,文件->新建->c++ source file.并取名:swap.c,然后点击确定,如图:4,编写代码,如下:1 void swap(int *x,int *y)2 {3 int temp=*x;4 *x=*y;5 *y=temp;6 }5,组建->组建[实现两个整数交换] F7,如图:6,编译结果,完全正确,如图:8,到这里,一个静态链接库就生成了。这个文件在这个工程的Debug目录下。接下来,使用它。---先...
阅读全文
摘要:代码区:一些操作的代码,指令集。如 加 减常量区:使用const修饰的 或者 具体值 如 2 , 3, “hello,world” , 'A' 不能改变的东东在这个区堆区:使用malloc,relloc 分配的内存区间栈区:函数中定义的变量,和函数的执行顺序。静态区:使用static定义的变量 或者 在函数外定义的变量。
阅读全文
摘要:功 能: 直接使用BIOS服务的键盘接口函数原型:int bioskey (int cmd)头文件:bios.h开发工具:TC参数:cmd含义0返回下一个在键盘键入的值(它将等待到按下一个键)。它返回一个16位的二进制 数,包括两个不同的值。当按下一个普通键时,它的低8位数存放该字符的ASCII码,高8位存放该键的扫描码;对于特殊键(如方向键、F1~F12等 等),低8位为0,高8位字节存放该键的扫描码。1查询是否按下一个键,若按下一个键则返回非零值,否则返回02bioskey()返回Shift、Ctrl、Alt、ScrollLock、NumLock、CapsLock、Insert键的状态。各
阅读全文
摘要:闲着无聊,做了这个程序。可以计算1000位以内的数相乘。纯字符串处理。 1 #include<stdio.h> 2 #include<string.h> 3 #include<stdlib.h> 4 //两个字符串相加 5 char* add(char *s1,char *s2) 6 { 7 char c[200]; 8 char *s=c; 9 int i=strlen(s1)-1,j=strlen(s2)-1,k=0;10 int flag=0;11 int sum;12 for(;i>=0&&j>=0;i--,j--,k++
阅读全文
摘要:1 #include<stdio.h> 2 #include<stdlib.h> 3 //求最大公约数 4 int f(int a,int b) 5 { 6 if(a%b==0) return b; 7 return f(b,a%b); 8 } 9 //将一个小数num转换成分数,fz表示分子,fm表示分母 10 void fun(double num,int *fz,int*fm)11 {12 *fm=1; 13 while(num!=(int)num){*fm*=10;num*=10;}14 *fz=(int)num;15 int t=...
阅读全文
摘要:1 #include<stdio.h> 2 #include<stdlib.h> 3 //判断一个数是不是整数,如果是,返回1,否则,返回0 4 int fun(double num) 5 { 6 return num==(int)num; 7 } 8 int main() 9 {10 printf("%d\n",fun(3.53221));11 printf("%d\n",fun(12544.534352));12 printf("%d\n",fun(1233));13 system("pause&
阅读全文
摘要:1 #include<stdio.h> 2 #include<malloc.h> 3 4 //一维数组 5 int* array(int n) 6 { 7 return (int*)malloc(sizeof(int)*n); 8 } 9 10 //二维数组11 int** array(int n,int m)12 {13 int i=0,**x=(int**)malloc(sizeof(int*)*n);14 for(;i<n;i++)15 x[i]=(int*)malloc(sizeof(int)*m);16 return x;17 ...
阅读全文
摘要:由于不允许带U盘拷贝题目,所以目前就没题目了。当时花了我将近一个小时的时间。 1 #include<stdio.h> 2 #include<math.h> 3 char flag[50][50]={0}; 4 void fun(int m,int k) 5 { 6 if(k<0) return; 7 int end=4*k+4+m; 8 for(int i=m+2;i<=end-2;i++) 9 flag[m][i]=flag[end][i]=1;10 flag[m+1][m+2]=flag[m+1][end-2]=1;11 flag[...
阅读全文
摘要:#include<stdio.h>#include<math.h> //判断一个数是否是素数 int fun(int n){ if(n<2) return 0; int i=2,j=sqrt(n); for(;i<=j;i++) if(n%i==0) return 0; return 1;}int main(){ for(int i=1;i<=1000;i++) if(fun(i)) printf("%d\n",i); getchar(); return 0;}
阅读全文
摘要:1 #include<stdio.h> 2 3 //功能:如果数组x的每个元素都不相等,返回1,否则,返回0 4 int fun(int **x,int n) 5 { 6 char flag[12]={0}; 7 for(int i=0;i<n;i++) 8 for(int j=0;j<n;j++) 9 {10 if(!x[i][j]) break;11 if(flag[x[i][j]])12 return 0;13 else 14 ...
阅读全文
摘要:古罗马帝国开创了辉煌的人类文明,但他们的数字表示法的确有些繁琐,尤其在表示大数的时候,现在看起来简直不能忍受,所以在现代很少使用了。之所以这样,不是因为发明表示法的人的智力的问题,而是因为一个宗教的原因,当时的宗教禁止在数字中出现0的概念! 罗马数字的表示主要依赖以下几个基本符号: I 1 V 5 X 10 L 50 C 100 D 500 M 1000 这里,我们只介绍一下1000以内的数字的表示法。 单个符号重复多少次,就表示多少倍。最多重复3次。比如:CCC表示300 XX表示20,但150并不用LLL表示,这个规则仅适用于I X C M。 如果相邻级别的大单位在右,小单位在左,表示大.
阅读全文