以下88案例打包下载地址
链接: keketec.club/posts/c065dba1/
☝️以上复制进浏览器地址,进行下载
案例ex01: 将字符串转换为一个整数
1 题目
函数:fun()
功能:将字符串转换为一个整数
描述:
【不能使用C语言提供的字符串函数】
输入:字符串"-1234"
输出:整型 -1234
2 思路
思路:将字符串每个位置的字符进行对应的ASCII码转换
例如:字符 '0'-'9' 对应的十进制整数是48~57,那么,将对应的整数减去48就得到了对应的整数
二进制
十进制
十六进制
字符
0011 0000
48
30
0
0011 0001
49
31
1
0011 0010
50
32
2
0011 0011
51
33
3
0011 0100
52
34
4
0011 0101
53
35
5
0011 0110
54
36
6
0011 0111
55
37
7
0011 1000
56
38
8
0011 1001
57
39
9
3 代码
#include
#include
/**
函数:fun()
功能:将字符串转换为一个整数
描述:
【不能使用C语言提供的字符串函数】
输入:字符串"-1234"
输出:整型 -1234
**/
long fun(char *p) {
int r = 0; //数字个数
long res = 0L; // 转化后的数字
int pos = 1; // 位数*10 *100 ...
int size = strlen(p); // 字符串长度
if (p[0] == '-'){
r = size - 1;
} else {
r = size;
}
// 从前往后转换的话,需要分情况去计算。即:不是负数的话从p[0] 和 如果是负数的话需要从p[1]开始
// 所以,可以从后往前计算,循环次数是 r
for (int i = 0; i < r; ++i) {
res += (p[size-1-i]-48)*pos;
pos *= 10;
}
return p[0]=='-'?-res:res;
}
int main(int argc, char const *argv[]) {
char s[6];
printf("Enter a string: ");
gets(s);
long res = fun(s);
printf("Convert Result: %ld\n", res);
return 0;
}
示例结果:
$ gcc ex1.c -o demo
$ ./demo
Enter a string: -1234
Convert Result: -1234
$ ./demo
Enter a string: 9089
Convert Result: 9089
案例ex02: 将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中
1 题目
编写:fun()
功能:将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中
例如:
二维数组中的数据为:
W W W W
S S S S
H H H H
则字符串中的内容是:WSHWSHWSH
2 思路
第一层循环按照列数进行,第二层循环按照行数
然后依次提出每一列的字符
3 代码
为了熟悉二维数组的指针表示,部分代码给出了数组表示和指针表示
#include
#include
#define M 3
#define N 4
/**
编写:fun()
功能:将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中
例如:
二维数组中的数据为:
W W W W
S S S S
H H H H
则字符串中的内容是:WSHWSHWSH
**/
// 0 1 2 3
// 0 W W W W
// 1 S S S S
// 2 H H H H
char *fun(char s[M][N], char *res) {
int t = 0;
for (int i = 0; i < N; ++i) {
for (int j = 0; j < M; ++j) {
res[t++] = s[j][i];
// res[t++] = *(*(a*i)+i); // 指针表示
}
}
res[t] = '\0';
return res;
}
int main(int argc, char const *argv[]) {
char a[M][N] = {'M', 'M', 'M', 'M', 'S', 'S', 'S', 'S', 'H', 'H', 'H', 'H'};
int size_res = M*N;
char res[size_res];
printf("二维数组中元素:\n");
for (int i = 0; i < M; ++i) {
for (int j = 0; j < N; ++j) {
printf("%c\t", a[i][j]);
// printf("%c\t", *(*(a*i)+j)); // 指针表示
}
printf("\n");
}
printf("按列的顺序依次:\n%s\n", fun(a, res));
}
示例结果:
$ gcc ex002.c -o demo
$ ./demo
二维数组中元素:
M M M M
S S S S
H H H H
按列的顺序依次:
MSHMSHMSHMSH
所有案例【88个案例文章太长无法一次发布,可以移步进行下载查看】
image
案例ex001: 将字符串转换为一个整数
案例ex002: 将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中
案例ex003: 统计一行字符串单词的个数,作为函数值返回
案例ex004: 统计各个年龄阶段的人数
案例ex005: 删除一维数组中所有相同的数,使之只剩一个。
案例ex006: 移动字符串中内容
案例ex007: 求数字的低n-1位的数
案例ex008: 使数组的左下三角元素中的值乘以n
案例ex009: 移动一维数组的内容
案例ex010: 删除字符串中所有的空格
案例ex011: 使用指针实现整数逆序排序
案例ex012: 指向结构体变量的指针
案例ex013: 使用指针输出数组元素
案例ex014: 找出数列中的最大值和最小值
案例ex015: 使用指针的指针输出字符串
案例ex016: 使用指向指针的指针对字符串排序
案例ex017: 使用指针连接两个字符串
案例ex018: 用指针实现逆序存放数组元素的值
案例ex019: 用指针数组构造字符串数组
案例ex020: 用指针函数输出学生成绩
案例ex021: 寻找相同元素的指针
案例ex022: 查找成绩不及格的学生
案例ex023: 使用指针实现冒泡排序
案例ex024: 输入月份号并输出英文月份名
案例ex025: 使用指针插入元素
案例ex026: 使用指针交换两个数组中的最大值
案例ex027: 输出二维数组有关值(二维数组的经典案例,非常重要)
案例ex028: 输出二维数组任一行任一列值
案例ex029: 将若干字符串按照字母顺序输出
案例ex030: 用指向函数的指针比较大小
案例ex031: 字符串的匹配
案例ex032: 使用malloc()函数分配内存
案例ex033: 调用calloc()函数动态分配内存存放若干数据
案例ex034: 为具有 5 个数组元素的数组分配内存
案例ex035: 为二维数组动态分配内存
案例ex036: 商品信息的动态存放
案例ex037: 用不带参数的宏定义求平行四边形面积
案例ex038: 使用宏定义实现数组值的互换
案例ex039: 编写头文件包含圆面积的计算公式
案例ex040: 利用宏定义求偶数和
案例ex041: 利用文件包含设计输出模式
案例ex042: 使用条件编译隐藏密码
案例ex043: 关闭所有打开的文件
案例ex044: 将文件中的内容从一个文件拷贝到另外一个文件
案例ex045: 将排好序的字符串保存到磁盘文件中
案例ex046: 用二进制方式向文件读写一组数据
案例ex047: 对一个文件重复读取
案例ex048: 将文件中不同位置的数据打印出来
案例ex049: 文件加密
案例ex050: 使用共用体存放学生和老师的信息
案例ex051: 使用共用体处理任意类型数据
案例ex052: 输出今天星期几
案例ex053: 任意次方后的最后三位
案例ex054: 计算某日是该年的第几天
案例ex055: 婚礼上的谎言
案例ex056: 百元买百鸡
案例ex057: 判断三角形的类型
案例ex058: 直接插入排序
案例ex059: 希尔排序
案例ex060: 冒泡排序
案例ex061: 快速排序
案例ex062: 选择排序
案例ex063: 归并排序
案例ex064: 二分查找
案例ex065: 分块查找
案例ex066: 哈希查找
案例ex067: 斐波那契数列
案例ex068: 哥德巴赫猜想
案例ex069: 尼科彻斯定理
案例ex070: 创建单向链表
案例ex071: 创建双向链表
案例ex072: 创建一个单循环链表
案例ex073: 头插入法建立单链表
案例ex074: 约瑟夫环
案例ex075: 创建顺序表并插入元素
案例ex076: 合并两个链表
案例ex077: 单链表节点逆置
案例ex078: 明码序列号保护
案例ex079: 非明码序列号保护
案例ex080: 恺撒加密
案例ex081: 编写循环移位函数
案例ex082: 取出给定 16 位二进制数的奇数位
案例ex083: 求一个数的补码
案例ex084: 普通的位运算
案例ex085: 整数与 0 异或
案例ex086: 打印杨辉三角
案例ex087: 循环显示随机数
案例ex088: 阿姆斯特朗数