C语言用字符串实现逢十进一,C语言总结

本文详细介绍了C语言的程序开发流程,从新建、编译、生成可执行文件到执行。讲解了C语言的基本语法,包括变量、数据类型、运算符、控制结构、函数、数组、字符串和指针。还涉及到了预处理、内存管理、多文件开发以及调试技巧。内容涵盖从源文件创建到程序运行的全过程。
摘要由CSDN通过智能技术生成

后缀名.c的文件是C程序的源文件

1.新建文件 终端-> cd 路径 ->touch main.c

2.编译文件 终端-> cc -c main.c 会生成出main.o文件 对应.c文件的二进制代码

3.生成启动文件 终端-> cc main.o 会生成出a.out文件,此文件为最终可以执行的程序

4.执行a.out程序 终端-> ./a.out 即可执行程序内容

XCode 编译器

Command + R 编译运行

Command + B 编译

Command + ,  设置  Text Editiong -> Line numbers 行号

在project下创建多个target

点击项目名->点击左侧展开->点击下方+即可新建target,也可file->new target.

运行按钮后方可选择默认启动项目

#include //导入系统的stdio.h头文件

int main(){ //定义主函数 返回值为int

printf(“输出”);

return 0;

}

main函数是程序的入口,一个标准的C程序只能有一个main函数

注释 单行// 多行/* */ 快捷键 command + /

变量是存储在内存中的数据。变量名,变量值。

数据类型:int 整型、float 单精度浮点型、 double 双精度浮点型、char字符型、

声明变量 数据类型 变量名;

为变量赋值 变量名 = 值;

int a = 1; float f1 = 12.12f; double d2 = 12.12; char c = ‘c’;

printf(“%f”,f1);

float 只能保存7位小数,如果超过了7位则不会精确保存。 Double 为16位。

Char 只能保存单个字符,使用单引号,如果写两个则保存最后一个 c=‘cv’ 输出v

输出变量的值

Printf(“格式控制符“,变量名)

int        %d

float     %f

double %lf

char     %c

Printf(“%d%f%c”,a,b,c);

如果使用变量时未赋值,则值是随机的。

格式化 快捷键 选中代码 Command + [左 ]右

printf函数的使用

1.printf(“输出信息”);

2.printf(“%d”,number); //输出变量

3.printf(“%5d”,number); //输出5位整数,如果不足5位就会以空格补齐。大于5位都显示。

4.printf(“%04d,number”);//输出4位整数,如果不足就会以0补齐。

5.printf(“%lf”,double);//如果double超过6位则不显示。

6.printf(“%.2lf”,double);//输出double 2位,7位 8位都可以。

7.printf(“%.2f”,float);//输出2位 float

删除项目中的target时,左侧管理栏需要删,点击项目中 targets中也要删,上方启动项管理schemmes 点击-号删除。 这三个都要删

数据类型转换

当int a; a=2.5; 输出2 自动截取。

Double d = 1; 输出1.000000 自动加0

Char c = 97; 输出a 为char可以直接赋值ascii码 ‘A’=65 ‘a’=97 ‘0’=48

scanf函数 获取用户输入

Int num;

scanf(“%d”,&num); //使用&符号获得变量地址

自定义连接符

scanf(“%d-%d-%lf”,&num1,&num2,&double3)  输入12-23-3.3

scanf函数的缓冲区

1.在执行scanf函数输入数据后,先将数据存储在缓冲区。

2.在执行scanf函数的时候,会先检查缓冲区中是否有数据,如果缓冲区中没有数据,就会让用户输入,如果缓冲区中有数据,则从缓冲区中将数据取出。

scanf(“%d”,num1);

scanf(“%d”,num2);

如在输入第一个num时 输入10空格20回车 则第二个无需输入直接拿出20

rewind(stdin); //清空缓冲区,否则无法输入回车 char会认为回车是一个空格输出

交换两个变量的值

1.用第三方变量 temp = num1; num1 = num2; num2 = temp;

2.两数相加再相减 num1 = num1 + num2; num2 = num1 - num2; num1 = num1 - num2;

算数运算符

+加、-减、*乘、/除、%余

算数表达式

由算术运算符链接起来的式子,叫做算数表达式。

算数运算符优先级

先乘除,再加减。从左到右依次运算。

小括号可以改变优先级

char类型也可以参与运算,按照ascii码数字进行运算

复合赋值运算符

+= -= /= *= %=

自增自减运算符

++ —

++num; 前++ 先计算后运算 num++;后++ 先运算后++

逗号表达式

表达式1,表达式2,表达式3,...表达式n。

从头到尾挨个执行,最后一个表达式的结果就是整个逗号表达式的结果。

比较运算符

>大于 =大于等于 <=小于等于 ==等于 !=不等于

在C语言中 使用int类型的数据来表示真假, 0代表假 非0代表真。

逻辑运算符

&& 与 || 或 !非

优先级 ! && ||

if分支结构

if(真){

}elseif(真){

} else{

}

变量作用域

int num = 1;

if(num>0){

int age=10;

}//当大括号内的程序执行完毕后,大括号内的变量会被立即回收。

//在这就使用不了age了,因为已经被回收了。只能在上面访问。

//可以使用num。

三元表达式 int num = 2>1 ? 1 : 2

随机数

#include //引入系统头文件

调用arc4random_uniform(10); //生成0-9的一个随机数

switch语法

switch(rand){

Case 1:

Case 2:

//1和2都执行的

Break;

Default:

Break;

}

xcode快捷键

command+0 隐藏/显示左侧

command+option+0 隐藏/显示右侧

command+12345 切换显示左侧项目菜单

option+左键点击成U型文件 代码分屏

command+shift+f 快速搜索项目

command+shift+o 直接搜索代码的定义

command+R 运行

command+B 编译

command+shift+0 参考文档

调试

在行号附近点击即可设置断点,取消断点按住往右一丢。

stop over F7 F8

循环

while 先判断后执行

do-while 先执行后判断

for 固定次数的循环

break;停止 continue跳出本次继续下次

goto跳转语句

将当前的语句跳转到当前函数的其他地方继续执行

goto labelName;

labelName: 在需要跳转的位置写入标签名即可。

函数

使用函数来实现代码的重用。

返回值类型 函数名称([参数列表]){

//代码块

}

viod test(){

}

如果想给方法使用文档注释 需要安装插件vvdocumenter

变量作用域:

局部变量:

定义在函数内部的变量,作用于函数内。

如果没赋值值是垃圾值。

全局变量:

定义在函数外部的变量,作用于全局。

一般全局变量定义在#include下面,如果没赋值值是0。

参数

void test(int num); //形参:声明函数时的函数称为形式参数。

test(1); //实参: 在调用函数时 实际为形参赋的值

返回类型

int getSum(int num1,int num2);

return 立即结束此函数的执行,根据返回类型返回数据。

函数定义时需要定义在上面,因为编译器在编译代码的时候是从上到下执行的。

预处理代码

在编译之前执行,以#号开头。

文件包含指令:#include

可以将制定的文件的内容拷贝到写指令的地方。

#include ”文件路径“ //用于自定义的

#include //用于系统自带的

如:main(){

#include “/users/david/desktop/test.txt” //将文本内容拷贝至此

}

相对路径,绝对路径。

多文件开发

1.新增一个.c文件时,如果函数写在其他文件中,调用时,需要先声明函数。

int getSum(int num1,int num2);  //其他文件中实现

main(){

getSum(1,2);

}

2.新增一个.h头文件,header file,将函数的声明写在此文件中。

其他文件使用函数时,先#include header文件,这时就可以使用函数了。

判断是不是偶数

If((num & 1) == 0) 偶数

交换两个变量的值

A = a ^ b

B = a ^ b

A = a ^ b

进制

一种计数的方式,侧重点在于计数的时候是封多少进一。

C语言可以识别的进制 二进制、八进制、十进制、十六进制。

二进制:逢二进一,每一位数字由0或者1表示。

0 1 10 11 100 101 110 111 1000

在c语言中写一个二进制,需要在前面加一个0b的前缀。

八进制:逢八进一,每一位只能是0 1 2 3 4 5 6 7

0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22

在c语言中写一个八进制,需要在前面加一个0的前缀。

%o,将整型数据以八进制输出。

十进制:逢十进一,每一位0 1 2 3 4 5 6 7 8 9

在c语言中直接写一个整数,默认就是十进制的。

%d,将整型数据以十进制输出。

十六进制:逢十六进一,每一位 0 1 2 3 4 5 6 7 8 9 a b c d e f

在c语言中写一个十六进制,需要在前面加一个0x前缀。

%x,将整型数据以十六进制输出。

十进制转为二进制,除2取余法,直到余数为0或者1,然后将余数倒序就是这个十进制对应的二进制

二进制转为十进制,加权法,将二进制数码的每个位权相加,就是对应的十进制

十进制转为八进制,除8取余法,直到余数为0或者1,就是对应的八进制

八进制转为十进制,加权法,将八进制的每一个数码的位权相加,就是对应的十进制

内存中的数据存储单元是由一个个的二进制位组成的,每一个二进制位只能存储0或者1.

将8个二进制分为1组,叫做1个字节,作为存储数据的最小基本单位。

所以只要想往内存中存储数据,最少要存一个字节的数据,也就是8个二进制数据。

8bit = 1byte

1024 byte = 1kb

1024kb = 1mb

1024mb = 1gb

1024gb = 1tb

Int 4个字节

double 8个字节

float 4个字节

char 1个字节

sizeof运算符

sizeof(数据类型|变量名|常量) 返回这个数据类型变量在内存中占据了多少字节。

sizeof 变量名 常量 可以不加小括号

数组

int arr[5]; //声明 声明时必须填写长度 可以是常量、变量、表达式等

arr[0] = 100; //赋值 不要超过下标写5

Int arr1[3] = {1,2,3}; //声明并初始化数组

int arr2[2] = {0}; //初始化所有值为0

Int CCC[] = {1,2,3,4,5,6}

C语言中的数组名存储的是数组的地址,所以 不能直接打印数组名,这样得不到数组中元素的值。

所以使用%p打印数组名。

数组的长度计算

sizeof(arr) / sizeof(arr[0]) //计算数组总共占用的字节数 除以 每个元素占用的字节数

值传递:

Int ,float,double 作为参数 不改变原来的值

引用传递:

将数组作为函数参数,改变原来的值,在传递的时候传递的是实参数组的地址

Void test(int arr[],int len){

for(int I =0;i

arr[i]=100;

}

}

Main(){

Int shuzu[] = {110,1,2};

Test(shuzu,sizeof(shuzu)/sizeof(shuzu[0]));

}

//数组反转

Int arr[] = {10,23,34,23,5,6,45,7,45,34,8,100}

Int len = sizeoff(arr) / sizeof(arr[0]);

for(int I = 0;i

Int temp = arr[i];

arr[i] = arr[len-1-i];

arr[len-1-i] = temp; //交换第0个 和 第12个

}

二维数组

二维数组在内存当中创建了指定行,指定列的表格来存储数据

声明二维数组

数据类型 数组名 【行数】 【列数】

赋值

arr[0][0] = 100;

声明并赋值

Int arr[][4] =

{

{10,20,30,40},

{11,21,31,41} //自动确认行数

}

字符串

在c语言中,使用字符数组来存储字符串数据。

“Jack” = ‘j’ ‘a’ ‘c’ ‘k’ ‘\0’ 代表字符串存储结束。

Char name[] = {“jack”} 自动加\0 长度5

char name[] = “jack”

%s 输出字符串

判断字符串长度

While(name[len] != ‘\0’)

len++;

字符串常用函数:

puts():输出字符串.

gets():接收1个字符串数据

Strlen():返回字符串长度

strcmp():比较字符串

strcpy():拷贝到另外一个字符串

strcat():连接字符串

指针

变量的地址就叫做指针

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值