自实现简单atoi功能

atoi这个库函数实在的太强大了,很多细节上的处理是我们无法想象的,不过最近也尝试做了一下这个练习,发现真的不是那么简单,只实现了一部分功能。如将字符串”123″转换为123,”-0123″转换为-123。代码功能比较简陋,还有诸多没有实现的功能,相比库函数atoi还差的很多,仅供参考。 继续阅读

练习题目“天生棋局”

1、传入一个n 在堆空间中产生n*n方格的棋盘
int ** createBoard(int n);
int createBoard1(int ***p,int n);
2、N颗棋子随机落在棋盘上<需要防止落在同一位置>
int initBoard(int **p,int n);
3、打印棋盘
int printBoard(int **p,int n);
如果有两颗棋子落同一行或者同一列则输出好棋,否则输出不是好棋。
将棋局中的棋子打印出来空位用O,有旗子的用X表示。随意就行。
4、销毁棋盘
int destroyBoard(int **p,int n);
int destroyBoard1(int ***p,int n); 继续阅读

练习题目“涨工资”

有一个员工文件salary_back.txt,salary_back.txt文件每行 为部门职员的姓名:工资(如tom:20000),题目要求:

  1. 求出该公司有多少人。
  2. 从工资文件salary_back.txt中读入全部工人,全部增加100元工资后并保存信息到文件salary.txt中。
  3. 将加工资之后的所有员工按工资进行降序排序,将排序后的结果选出工资最高TOP10在屏幕上输出。

继续阅读

计算一个字符串不重复字符个数

题目给出的函数原型如下:

int getCountOfString(const char *str);

由于参数是const的,所以字符串本身肯定是不能被修改的,题目大致思路就是备份一份字符串到堆空间中(可修改),然后遍历堆空间将重复的字符串置成\0,最后遍历整个堆上的字符串将去除\0后得到的总数返回。 继续阅读

逆置字符串

逆置字符串是将字符串所有字符前后颠倒,有比较常见的两种思路,第一种是生成两个分别指向头和尾的指针,遍历字符串交换头尾指针,然后对头尾指针向字符串中间移动,最终得出交换结果。另外一种思路则是后续递归的方式。以字符串结束\0为递归终止条件,再调用自身函数后打印每一个字符即可逆置显示一个字符串。 继续阅读

自定义实现字符串函数

C语言库函数中strlen、strcmp、strcpy、strcat是我们非常常用的一些字符串处理函数,我们不得不了解一下内部的工作原理,有必要思考如果没有这些库函数我们该如何实现这些函数的功能。以深入的了解字符串内部的处理机制。本文就记录了一些前辈们留下的非常简练的实现。

继续阅读