c语言以字符输出88,C语言88案例完整版

以下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个案例文章太长无法一次发布,可以移步进行下载查看】

fadb4f36db01

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: 阿姆斯特朗数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值