- 博客(16)
- 收藏
- 关注
原创 泛型编程之数据交换
泛型编程之数据交换 想必有C语言基础的同学,都换写出一个能使两个整型数据或者两个浮点型数据等 进行数据交换的功能函数,如两个整型数据交换的功能函数如下: void Swap_int(int a,int b) { int tmp; t=a; a=b; b=t; } 但是,我若想这个功能函数不仅可以交换整型的数据,float、double、char等类型的数据都能交换,显然,上面这个功能函数...
2019-04-05 13:06:07
556
原创 C语言和C++语言中的泛型指针
C语言和C++语言中的泛型指针 首次,在说泛型指针之前,先说说特定指针,特定指针,顾名思义,就是有明确的类型的指针,如:int * ,char * ,float * ,short* ,student* 等等。 那泛型指针,则为没有数据类型的地址,即 void *。许多库函数中也有此类型的泛型指针,如:malloc( ),memset( )等等。 那么,NULL在C和C++语言中,分别指的是什么呢?...
2019-04-03 18:57:52
1788
原创 求给出数据的平均值(不能用数组)
求给出数据的平均值(不能用数组) 我们都会求给定数字个数的平均值,如求两个数的平均值的函数如下: int AVG(int a,int b) { sum (a+b)/2; } 但是这个功能函数,只能求出两个数字的平均数,并不能求出三个数字的平均数、四个数字的平均数等。 那么,能不能写出一个函数,无论有多少个数字,都能求出期平均值? 首先,介绍一个头文件,#include <stdarg.h...
2019-04-03 17:49:59
818
原创 求二进制数中1的个数
求二进制数中1的个数 相信大家都做过给一个十进制的整数n,然后判断这个整数有多少位,最后将每位的数字输出。利用了整型数据除法的特点。通过相除判断余数的值来分析。 而二进制也可以考虑利用整型数据除法的特点,只是除的是2而不是10,在此就只提供思路而不写代码。 本次主要介绍的是使用位操作来进行的。 我们知道,向右移位操作同样可以达到相除的目的。唯一不同之处在于,移位后如何判断是否有1存在。那我们进要进...
2019-03-28 18:24:02
193
1
原创 给定一个整数N,其N的阶乘末尾有多少个零?
给定一个整数N,其N的阶乘末尾有多少个零? 这道题不是直接让我们求出一个整数的阶乘,因为这样会出现溢出的可能。因此,我们要从**“哪些数相乘能得到10”**这个角度来考虑。 首先考虑N!=K10^M, 并且K不能被10整除,那么N!末尾有M个0。再考虑对N!进行质因数分解,N!=(2X)*(3Y)(5^Z)…,由于10=2*5,所以M只和X和Z有关,每一对2和5相乘都可以得到一个10,于是M=mi...
2019-03-28 17:24:17
1488
原创 比较字符串的大小
比较字符串的大小 str1<str2返回<0的数字; str1==str2返回0; str1>str2返回>0的数字 #include<stdio.h> #include<string.h> int MyStrcmp(const char*str1,const char*str2) { int tmp;//计算差值 while((tmp=*st...
2019-03-15 23:08:30
292
原创 将字符串逆置
将字符串逆置 #include<stdio.h> #include<string.h> void StrReverse(char *str) { char *p; for(p=str;p!='\0',p++);//找到字符串的尾部 char temp; for(p--;str<p;str++,p--)//交换字符 { temp=*str;...
2019-03-15 22:52:16
3241
原创 一维数组与二维数组的理解
一维数组与二维数组的理解 一维数组: 假设 int arr[4]; 那么arr、arr+1、arr[0]、arr[0]+1分别是什么数据类型? arr:指针类型(int *x;),指向第一个元素地址的指针。 arr+1:指针类型(int *x;),指向下一个元素地址的指针。 arr[0]:第一个元素的值(int x;)。 arr[0]+1:第一个元素的值再加1(int x;)。 二维数组: 假设 ...
2019-03-02 23:09:47
421
原创 判断字符是否为小写字母
判断ch是否为小写字母 bool IsLower(char ch) { char *str = "abcdefghijklmnopqrstuvwxyz"; for(unsigned int i=0;i<strlen(str);i++) { if(str[i] == ch) { return true; } } return false; } ...
2019-03-01 17:22:44
3452
原创 求字符串的长度(有效字符个数不包含'\0')
求字符串的长度(有效字符个数不包含’\0’) int Mystrlen(const char *str) { int count = 0; while(*str != '\0') { count++; str++; } return count; }
2019-03-01 17:17:27
14597
2
原创 字符串连接
字符串连接:des = des+src void Mystrcat(char *des,const char *src) { while(*des!='\0') { des++; } while(*src != '\0') { *des = *src; des++; src++; } *des = '\0'; }
2019-03-01 17:10:42
155
原创 字符串的复制
字符串的复制 用数字的形式实现 void Mystrcpy1(char *desstr,const char *srcstr) { int i; for(i=0;srcstr[i]!='\0';i++)//srcstr[i] == *(srcstr+i) { desstr[i] = srcstr[i]; } desstr[i] = '\0'; } 用指针的形式来实现,要记住一个重要...
2019-03-01 16:33:32
249
原创 const的使用
const的使用 作用:定义常变量,不允许修改其值 。 例如: int const ca = 10; //ca = 20;//error //ca = 10;//error 1.基本的数据类型对于const是透明的。 例如: int const ca = 0; const int cb = 0; ca和cb是等价的。 2.const 限定它的直接右边。 例如: const int *cp1 =...
2019-02-28 17:23:36
126
原创 统计单词的个数
统计单词的个数:字母遇上非字母则为一个单词 #include <stdio.h> #include <string.h> #include <ctype.h> int Words(const char *str) { int count = 0; while(*str != '\0') { if(isalpha(*str) && !i...
2019-02-28 17:00:54
314
原创 指针的大小
一维数组名arr,表示整个数组成立情况: 1、在定义数组的情况中,求size of 2、在定义数组的函数中&amp;arr+1 3、其他情况数组名都表示数组首元素地址 void show(int arr[10])//形参arr已经退化成指针,10没有意义 for(int i=0;i&lt;10;i++) { printf("%d",arr[10]); } printf("\n"); }...
2019-02-26 16:37:24
151
原创 #判断正整数位数以及正逆序输出
TOC## 判断正整数位数以及正逆序输出 #include<stdio.h> int main() { long a,a1,a2; scanf("%d",&a); if(a>=0 || a<=10000) { a1=a; int n=0; while(a1) { a1/=10; n++; } printf("这个数字为%d位数\n",n); a2...
2018-10-19 16:33:31
400
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人