- 博客(33)
- 收藏
- 关注
原创 const是只读,不是常量
#include int main(){ int buf[3]; const int a = 5; buf[-1] = 6; printf("%d\n",a); return 0;}
2013-09-30 16:11:18 1483
原创 一个小程序
#include #include #include int main(){ unsigned int seed; /*申明初始化器的种子,注意是usigned int 型的*/ int k; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN|FOREGROUND_INTEN
2013-09-29 10:32:39 1293
原创 strncat函数
/*原型:extern char *strncat(char *dest,char *src,int n);用法:#include 功能:把src所指字符串的前n个字符添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'。说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。返回指向dest的指针。*/#inc
2013-09-23 20:11:09 1820
原创 strncpy函数
/*原型:char * strncpy(char *dest, char *src,size_tnum);功能:(c/c++)复制src中的内容(字符,数字、汉字....)到dest,复制多少由num的值决定,返回指向dest的指针。如果遇到null字符('\0'),且还没有到num个字符时,就用(num - n)(n是遇到null字符前已经有的非null字符个数)个null字符附加到
2013-09-23 19:08:05 2303
原创 strnlen函数
/*串比较,strnlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符'\0'或计数器到达以下的maxlen为止,然后返回计数器值。(该函数能防止使用strlen(char * str )时str字符串不以'\0'结束而引发的错误)。*/ #include si
2013-09-23 17:27:39 4317
原创 strspn函数
/*strspn(返回字符串中第一个不在指定字符串中出现的字符下标)表头文件 #include定义函数 size_t strspn (const char *s,const char * accept);函数说明 strspn()从参数s 字符串的开头计算连续的字符,而这些字符都完全是accept 所指字符串中的字符。简单的说,若strspn()返回的数值为n,则代表字符串s
2013-09-23 15:40:47 2019
原创 strstr函数
/*包含文件:string.h函数名: strstr函数原型:extern char *strstr(char *str1, char *str2);功能:从字符串str1中查找是否有字符串str2,如果有,从str1中的str2位置起,返回str1中str2起始位置的指针,如果没有,返回null。 如果s2为空串,则返回s1返回值:返回该位置的指针,如找不到,返回
2013-09-23 14:11:06 1645
原创 strrchr函数
/*函数名称: strrchr函数原型:char *strrchr(const char *str, int c);所属库: string.h函数功能:查找一个字符c在另一个字符串str中末次出现的位置(也就是从str的右侧开始查找字符c首次出现的位置),并返回从字符串中的这个位置起,一直到字符串结束的所有字符。如果未能找到指定字符,那么函数将返回NULL。这个函数和s
2013-09-23 11:20:56 2113
原创 strdup函数
/*功 能: 将串拷贝到新建的位置处strdup()在内部调用了malloc()为变量分配内存,不需要使用返回的字符串时,需要用free()释放相应的内存空间,否则会造成内存泄漏。这个函数在linux的man手册里解释为:The strdup() function returns a pointer toa new string which is aduplicate o
2013-09-23 10:43:42 1718
原创 strpbrk函数
/*strpbrk函数用法:#include 功能:依次检验字符串s1中的字符,当被检验字符在字符串s2中也包含时,则停止检验,并返回该字符位置,空字符NULL不包括在内。说明:返回s1中第一个满足条件的字符的指针,如果没有匹配字符则返回空指针NULL。用途:在源字符串(s1)中找出最先含有搜索字符串(s2)中任一字符的位置并返回,若找不到则返回空指针。这个函数与strsc
2013-09-23 10:14:17 1616
原创 strcspn函数
/*strcspn原型:size_t strcspn(const char *s1,const char *s2);相关头文件:string.h功能:顺序在字符串s1中搜寻与s2中字符的第一个相同字符,包括结束符NULL,返回这个字符在S1中第一次出现的位置。说明:(返回字符串s1中第一个在s2中出现的字符在s1中的下标值,亦即在s1中出现而s2中没有出现的子串的长度。)这
2013-09-23 09:37:07 2097
原创 strchr函数
#include char *strchr(const char *str, int c){ while((char)c != *str && *str!= '\0') { str++; } return (*str == c?(char*)str:NULL);}int main (){ char str[] = "This is a s
2013-09-22 11:59:19 1441
原创 strcmp函数
#include #include int strcmp(char const *str1, char const *str2){ int ret = 0; assert(str1 != NULL && str2 != NULL); while ( ! (ret = *(unsigned char*)str1 - *(unsigned char*)str2) &
2013-09-22 10:25:45 1461
原创 strcat函数
#include char* strcat(char *dest, const char *src){//注意*号的位置,紧挨着char,表示返回一个char*型的指针,而紧挨着参数名,表示该参数是一个指针,便于程序的理解。 char *address = dest; if (dest == NULL && src == NULL) { return dest;
2013-09-22 09:04:09 1875
原创 比较两个文件相同的地方
#include #include int main(){ FILE *fp1,*fp2,*fp3; char filename[1000]; char c1,c2; printf("请输入文件名1:"); gets(filename); fp1 = fopen(filename,"r"); if (!fp1) { printf("文件不存在,打开失败!");
2013-09-20 19:31:30 1304
原创 strcpy函数
网上流行的标准实现 #include char *strcpy(char *dest, const char *src){ char *address = dest; //保存原目标地址 if (dest == NULL || src == NULL) { return NULL; //也可以使用断言 } while((*dest
2013-09-18 11:30:06 1438
原创 strlen函数
#include size_t strlen(const char *string){//通过这函数可知,对于一个未初始化的字符数组,求它的字符串长度是不对的,也是不可知的。 size_t length; for(length = 0; *string++ != '\0';) { length+=1;//遍历整个字符串,直到遇到空字符 } return length;
2013-09-17 19:38:55 1576
原创 strnicmp函数
函数名: strnicmp功 能: 比较字符串str1和str2的前n个字符串字典序的大小,但是不区分字母大小写。返回值: 当str1str2时,返回值>0。比较是这样进行的,先比较2个字符串的第1个字符字典序的大小,如果能比较出大小,则马上返回了,如果不能区别大小,开始比较第2个,如果这时第1个字符串已经到尽头了,第2个字符串还有字符,这时算第2个字符串大。用 法: int st
2013-09-17 19:14:53 1740
原创 数组排序问题
有一个整型数组int A[nSize],其中隐藏着若干0,其余非0整数,写一个函数int Func(int* A, int nSize),使A把0移至后面,非0整数移至数组前面并保持有序(保持原来的顺序),返回值为原数据中第一个元素为0的下标。#include int Func(int *a, int nSize){ int i,k,t=1,flag = 0; for
2013-09-17 19:07:00 1386
原创 查找一个字符串里没有出现的字母
#include int main(){ int i; int a['z'+1]; char b[100000] = "abcflalflqwofowofjwojfojowsjf"; for (i='a';i<='z';i++) { a[i] = 0; } for (i=0; i<sizeof(b); i++) { a[b[i]]++; } for (i='a'
2013-09-17 18:51:43 1673 1
原创 字符串反转的各种方法
版本1void reverse(char *str){ int i; int j = strlen(str); char temp; for (i=0; i<j;i++,j--) { temp = str[i]; str[i] = str[j-1]; str[j-1] = temp; }}版本2void reverse(char *s
2013-09-17 17:09:57 1327
原创 十进制转二进制的神奇代码
#include int main(){ int x; unsigned int i; printf("请输入一个整数:"); scanf("%d",&x); for (i=0x80000000;i;i>>=1) { printf("%d",(x&i)==i);//思想太精妙了,用移位来操作,移位真强大啊 } printf("\n"); return 0;}
2013-09-17 14:07:41 1569
原创 浮点数在计算机中的存储
#include void binary_print(unsigned char c){ int i; for(i = 0; i < 8; ++i) { if((c << i) & 0x80) printf("1"); else printf("0"); } printf(" ");}int main(){ float a = 0.0f; int i
2013-09-17 13:59:26 1318
原创 将一个整数转换为字符串
#include #include #include void reverse(char *str){ char temp; char *last_char; for (last_char = str; *last_char != '\0'; last_char++) ; last_char--; while (str < last_char) { temp
2013-09-17 09:57:59 1612
原创 将一个字符串转换为浮点数
#include #include #include double atof(const char *s){ int i = 0; int k = 0; double j; int flag = 1; double result = 0.0; while (s[i] == ' ') { i++; } if (s[i] == '+') { i++; } if
2013-09-17 09:45:54 2383
原创 将一个字符串转换为整数
#include #include #include int myatoi(char *s){ int i = 0,j; int result = 0; int flag = 1; while (s[i] == ' ') //将多余的空格字符去掉 { i++; } if(s[i] == '+')//如果是一个正整数 { i++; } if(s[i] =
2013-09-17 09:37:29 1445
原创 打印螺旋方阵
#include #define N 5#define max(a,b) ((a)<(b)?(b):(a))#define abs(a) ((a)>0?(a):(-a))int foo(int x, int y){ int t = max(abs(x),abs(y)); int u = t + t; int v = u - 1; v = v * v + u; if
2013-09-16 13:37:49 1457
原创 打印一个杨辉三角
#include #define N 8int main(){ int i,j; int a[N][N] = {0}; for (i=0; i<N; i++) { a[i][0] = 1; //第i行第1元素为1; a[i][i] = 1; //第i行最后一个元素为1; } for (i=2; i<N; i++) {//第0行与第1行的元素都是1,所
2013-09-16 10:08:11 1251
原创 大数减法
#include #include #define N 100void charstoint(int a[], char s[]){ int i; int len = strlen(s); memset(a,0,4*N); //整型占4个字节 for (i=0; i<len; i++) { //不考虑负数与非数字字符的情况 a[len-1-i] = s[i]
2013-09-12 10:22:47 1146
原创 大数加法
#include #include #define N 100void charstoint(int a[], char s[]){ int i; int len = strlen(s); memset(a,0,4*N); //整型占4个字节 for (i=0; i<len; i++) { //不考虑负数与非数字字符的情况 a[len-1-i] = s[i
2013-09-11 16:25:54 1126
原创 大数乘法
#include #include #define N 1000void charstoint(int a[], char s[]){ int i; int len = strlen(s); memset(a,0,4*N); //整型占4个字节 for (i=0; i<len; i++) { //不考虑负数与非数字字符的情况 a[len-1-i] = s[i]
2013-09-11 15:42:35 1298
原创 不用临时变量交换两个单精度浮点数的值
#include int main(){ float a = 3.14f; float b = -5.23f; *(int*)(&a) ^= *(int*)(&b); *(int*)(&b) ^= *(int*)(&a); *(int*)(&a) ^= *(int*)(&b); printf("%f %f",a,b); return 0;}单精
2013-09-11 09:11:54 1584
原创 十进制转换为任意进制(2~16)
#include char hex[] = "0123456789ABCDEF";int main(){ int i,num; _int64 n; _int64 a[64] = {0}; printf("请输入一个要转换的进制:"); scanf("%d",&num); printf("请输入一个要转换的数:"); scanf("%I64d",&n); for (i=63
2013-09-11 09:01:48 1588 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人