打卡机程序编写回顾

算法方面没什么难点,主要就是一些最基本的操作细节。

1.字符串和字符数组

在C语言中,字符串和字符数组都用char arr[]形式声明,具体初始化赋值存在差别:

// 字符数组赋初值    
char cArr[] = {'I','L','O','V','E','C'};    
// 字符串赋初值    
char sArr[] = "I LOVE C";

在声明字符串时 需为结尾’\0’保留一个字节,否则获得的字符串不完整,在实际输出时将无法结束,从而导致后续跟随的不属于本字符串的内容也将被一起输出。
求取其长度可用sizeof 和 strlen 2个函数:

printf("cArr的长度=%d\n", sizeof(cArr)); // 对于上例其值为6
printf("sArr的长度=%d\n", sizeof(sArr)); // 值为7       printf("cArr的长度=%d\n", strlen(cArr)); // 值为7   
printf("sArr的长度=%d\n", strlen(sArr)); // 值为6

2.stdio操作

在C语言中,从bash获取输入到系统变量踩了不少坑。
在Visual Studio中,不建议使用scanf函数,而建议使用scanf_s函数。总结得到对于字符串、单个字符、数字的获取方式的代码可写为:

// 字符串输入
char input[20];
gets_s(input, LEN); // 直到输入回车才结束 接收整个字符串 包括'\0'
// 单个字符输入
char symbol = (char)getchar();
// 获取单个数字
int number = 0;
scanf_s("%d", &number);
getchar(); // 需要附加该语句来接收 从bash输入用于表示结束的回车

在Linux中,没有scanf_s和gets_s函数,且其包含的getline函数并不合用,都需采用scanf函数进行处理,代码可写为:

// 字符串输入
char input[20];
scanf("%[^\n]", input);
getchar();
// 获取单个字符输入
char symbol = (char)getchar();
// 获取单个数字输入
int number = 0;
scanf("%d", &number);
getchar(); 

3.项目文件编译及组织

一般一个项目包含3个文件夹:header,source,output,在编写组织过程中,所有.h文件放入到header文件夹中,所有.c文件(包括main函数文件)放入到source文件夹中,output文件夹保存生成的文件。
在Visual Studio中这样组织编写代码没有问题,其可以帮助管理的很好。
在Linux的VS Code中,就需要在文件编写中注意一点,在.c文件的头文件包含中:

#include <库文件> // 没问题
#include "自建头文件" // 编译提示找不到文件
#include "header/自建头文件" // 编译提示找不到文件
#include "../header/自建头文件" // 只有这样写才能通过编译

一般还编写build.sh脚本文件来帮助编译,其一般放在主目录中,与header,source,output文件夹平级。
当使用math.h头文件中的函数时 在编译文件时 需在编译命令末尾添加-lm选项,如:

gcc main.c source/module.c -o main.out -lm
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值