自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 StrBlobPtr算术运算符的实现

简介参见C++primer第十四章第六节的习题类说明这个类是一个指向StrBlob类的指针,只不过不同于普通指针,该类的数据成员有一个weak_ptr,在构造函数中,我们将该指针指向shared_ptr指向的内容,不过该指针并不会像shared_ptr那样,为use_count增加一个。由于 weak_ptr 所指向的对象可能不存在,因此使用了一个 check() 来检查该类在进行操...

2019-10-15 11:42:48 212

原创 链表reverse

很普通的单向链表转置,主要方法是利用NODE *pCur指向待改变方向的节点,利用NODE *pRev指向待改变方向节点的上一个节点(如果是第一个节点,即头节点,因为转置后该节点变为尾节点,则此时为NULL),在循环中创建一个中间变量NODE* pTmp,利用中间变量 tmp 存储 cur指针变量存储的节点地址,然后改变cur指向下一个节点,再将tmp指针指向的节点的pNext = pRev,此时...

2019-05-21 21:47:38 380

原创 字符串排序

该程序可以对输入的字符串进行排序,windows中以Ctrl+z结束。程序的思路是利用指针数组,指向存储在alloc函数分配的空间中的字符串,使用Qsort函数进行比较。在Qsort函数中,将key也就是待回归的值变为指针变量来存储指针数组中的地址,然后利用这个地址和其它指针数组中的地址传进strcmp函数中,来逐字比较字符串的大小,最后进行指针指向地址的交换。readline函数主要起一个读入输...

2019-03-25 15:55:41 185 1

原创 TCPL 4-13

题目:编写一个递归版本的reverse(s)函数,以将字符串s倒置;这个题目真的让我困惑了很长时间,原因是我在测试时直接写了int *pstr = "hello",然而这样是将pstr指向了一个常量,它存储在静态存储区内,所以在下面想要修改时,就会出现错误。必须时用scanf或者strcpy函数来将值写入或复制到该变量内。#include <stdio.h>#include...

2019-03-24 21:23:47 145

原创 TCPL 4-12

题目:运用printd函数的设计思想编写一个递归版本的itoa函数。即通过递归调用把整数转换为字符串。在这里,我先将itoa函数写了出来,然后再写了一下递归版本的,很显然,递归版本的代码量远远小于正常版本的。但是相应的也要付出一定的空间代价。#include <stdio.h>#include <stdlib.h>#include <malloc.h&g...

2019-03-24 16:55:49 176

原创 逆波兰计算器

上次所写的逆波兰计算器完全就是在云里雾里的情况下抄袭而成,这次经过多次的调试和自己动手写,明白了逆波兰运算器的原理,当然,例如TCPL书中所写的ungetch我是没有用到的。#include <stdio.h>#include <stdlib.h>#include <ctype.h>#include <math.h>/*** 创建...

2019-03-13 23:15:58 130

原创 TCPL 3-2

题目要求:编写一个escape(s, t), 将字符串t复制岛字符串s中,并再复制过程中将换行符、制表符等不可见字符分别转换位\n、\t等相应的可见的转义字符序列。要求使用switch语句。再编写一个具有相反功能的函数,在复制过程中将转义字符序列转换位实际字符。void escape(char *s, char *t, int bit) //t被复制的变量, s存储复制结果的变量{ ...

2019-02-25 16:09:50 298

原创 TCPL 2-9

题目:在求对二的补码时,表达式x &amp;= (x -1)可以删除x中最右边值为1的一个二进制位。请解释这样做的道理。用这一方法重写bitcount函数,以加快其执行速度。int bitcount(unsigned x){ int nCount = 0; while(x != 0) { x &amp;= x - 1; nCount++;...

2019-02-25 14:51:36 138

原创 strindex

该程序首先会选择一个字符串str,然后打印不包含该字符串的段落,以输入EOF结束#include &lt;stdio.h&gt;#include &lt;stdlib.h&gt;#define MAXLINE 1000int strindex(char *bufs, char *pattern);int getline(char *bufs, int limt);const c...

2019-02-25 10:57:24 1607

原创 TCPL 2-7

题目:编写一个函数invert(x, p, n),该函数返回对x执行下列操作后的结果值:将x种从中p位开始的n个(二进制)位求反(即,1变成0, 0变成1),x的其余各位保持不变。下面是代码:unsigned invert(unsigned x, int p, int n){ return ~(~0 &lt;&lt; n) &lt;&lt; (p - 1) ^ x &amp...

2019-01-27 13:44:29 195

原创 TCPL 2-6

题目:编写一个函数setbits(x, p, n, y), 该函数返回对x执行下列操作后的结果值:将x中从第p位开始的n个(二进制)位设置为y中最右边n位的值,x的其余各位保持不变。 对这个题目有两个理解,将x中从p位开始的n位 设置 到 y最右边(返回结果以y为标准),或者将y中最右边的n位 设置 到x中 从p位开始 的n位(返回结果以x为标准)。我将两种结果都写了出来。下面是第...

2019-01-22 21:08:39 147

原创 二分查找

int binSearch(int *nums, int size, int num){ int hight = size; int lower = 0; int mid = 0; while(lower &lt; hight) { mid = (hight + lower) / 2; if(num &gt; nums[...

2019-01-20 21:19:38 97

转载 逆波兰计算器

#include &lt;stdio.h&gt;#include &lt;stdlib.h&gt;#include &lt;ctype.h&gt;#define MAXOP 100 //操作数或运算符的最大长度#define NUMBER '0' //标识找到一个数int getop(char *s);void push(double f);double ...

2019-01-15 11:17:21 151

原创 TCPL 2-4

题目:重新编写squeeze函数,将字符串s1中任何与字符串s2中字符匹配的字符都删除。char* squzee(char *pstr_1, char *pstr_2){ int i = 0; int j = 0; int k = 0; for(; pstr_2[k] != '\0'; k++) { i = 0; f...

2019-01-12 14:58:56 149

原创 TCPL 2-3

题目:将字符串类型的十六进制数转化成整数类型的十进制数。long htoi(char *pstr){ int i = 0; int nNums = 0; int nIdx = 0; long lSum = 0; if(pstr[i] == '-') { nIdx = -1; i++; } w...

2019-01-11 21:43:49 147

原创 TCPL 2-1

题目:确定signed和unsigned的范围#include &lt;stdio.h&gt;#include &lt;stdlib.h&gt;#include &lt;limits.h&gt;int main(){ printf("signed char min = %d\n", SCHAR_MIN); printf("signed char max = %d\n...

2019-01-10 15:17:43 184

原创 TCPL 1-23(扩展版)

题目:编写一个删除C语言程序中所有的注释语句。要正确处理带引号的字符串与字符常量。在C语言中程序中,注释不允许嵌套。#include &lt;stdio.h&gt;#include &lt;stdlib.h&gt;int main(){ int c = 0; int pos = 1; int d = 0; while((c = getchar()) ...

2019-01-10 14:52:54 154

转载 Atof 字符串转化为浮点数

double Atof(const char *pstr){ int idx = 0; int sign = 0; double num = 0.0; double power = 1.0; for(; pstr[idx] == ' '; idx++);//跳过空格 sign = (pstr[idx] == '-') ?-1 : 1; ...

2019-01-08 17:36:05 491

原创 Shell排序

void shellSort(int *nums, int n){ int nTmp = 0; int i, j, gap; for(gap = n / 2; gap &gt; 0; gap /= 2) { for(i = gap; i &lt; n; i++) { for(j = i - gap; j &...

2019-01-05 14:18:55 108

原创 快速排序 C实现

void QuickSort(int *nums, int left, int right){ int i = left; int j = right; int key = nums[left]; if(left &gt; right) { return; } while(i &lt; j) { ...

2019-01-05 13:59:55 108

原创 extern使用sizeof

在拥有多个文件的C项目之中,例如有三个文件,一个头文件palyer.h, 一个头文件的源文件 player.c ,一个 main.c ,在 player.c 中定义一个结构数组,然后,在 main.c 中使用sizeof(数组)/sizeof(元素)来获取其大小。但是, 如果该语句在main.c中使用会发生 “nvalid application of 'sizeof' to incomplete...

2019-01-03 16:50:04 951

原创 TCPL 1-22

编写一个程序,把较长的输入行“折”成短一些的两行或多行。#include &lt;stdio.h&gt;#define MAXCOL 10#define TABINC 8void printl(int pos);int exptab(int pos);int newline(int pos);int findline(int pos);char line[MAXCOL];...

2019-01-02 11:41:31 187

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除