C语言用字符串实现逢十进一,C语言小笔记

头文件的书写

头文件实现函数声明,在使用模板后可以实现一个C文件中即使重复包含某个头文件,在系统中用于只会确认为一个包含

头文件包含可以理解为将头文件内容替换#include“...”行

模板(dong.h):

#ifndef _DONG_H_#define _DONG_H_

//其它内容

#endif

编译工具的使用

C语言(gcc)、C++语言(g++)

编译默认输出a.out文件

gcc *gcc*.c

重命名输出文件

gcc test.c -o newexe

命令行传递参数

b84303f021669b7698032b39965cb6c9.png

#include

int main(int vsize,char *vch[])

{int i=1;for(i=1;i

printf("%d=>%s",i,vch[i]);return 0;

}

输入和输出

scanf()输入

返回值1为失败,2为正确

inta, b;

printf("请输入两个整数,用空格隔开:");//scanf("%d,%d", &a, &b);//逗号分隔//scanf("%d-%d", &a, &b);//减号分隔

int i=scanf("%d%d", &a, &b);

printf("%d,%d,%d", a, b,i);

printf("请输入两个整数,用逗号分隔:");

scanf("%d,%d", &a, &b);

printf("%d,%d", a, b);

printf()输出

printf("dongxiaodong %d

", 100);//格式化输出

printf("东小东

");//直接输出内容

相关输出百分号意义:

%d          正常输出整数,仅占有本身大小位置

%5d        整数位数不足5(起始为1),前面自动补空,超出则与%d相同

%-5d       整数位数不足5,后面补空,超出则与%d相同

%f,%F  浮点型(float)输出,默认6位小数位,超出则四舍五入

%lf          双精度浮点型(double)

%15f       浮点数总长最小为15,不足则前面补空

%-15f      浮点数总长最小为15,不足则后面补空

%3.2f      前面数组3与上两个解释一样,小数点后的2表示小数位最大为2位,多则四舍五入,少则补零

%c          单个字符

%s          字符串

%p          指针地址(十六进制)

%x,%X    输出不带前缀的十六进制整数,小写x对应小写a、b、c……

%%         输出符号:%

输入输出单个字符

getchar();接收第一个字符,等待用户按下enter键后开始读取

getche();接收第一个字符,用户输入后马上读取,输入显示,头文件【#include】

getch();接收第一个字符,用户输入后马上读取,输入不显示,头文件【#include】

putchar();输出一个字符

#include

voidmain() {char ch = getchar();//拿到输入的第一个字符

printf("%c", ch);

putchar(ch);//输出之前输入的字符

putchar('');//输出换行符

}

getc()和putc()

原型:

int putc(int char, FILE *stream)

int getc(FILE *stream)

省略步骤:FILE *pfin = stdin;

#include

voidmain(){char str[100];

fgets(str,100,stdin);//stdin标准输入,键盘

fputs(str,stdout);//stdout标准输出,屏幕

}

输入输出字符串

Gets()与puts()是不安全的操作,取代方法为fgets()与fputs()

#include

voidmain(){char str[100];

fgets(str,100,stdin);//stdin标准输入,键盘

fputs(str,stdout);//stdout标准输出,屏幕

}

C语言的注释

#include

#define DevFlg 20

void main(){

#if(DevFlg==1)

printf("----1--------");

#elif(DevFlg==2)

printf("----2--------");

#elif(DevFlg==3)

printf("----3--------");

#else

printf("-------------");

#endif

}

调用命令行

输出默认直接到屏幕,需要获取内容可以将其重定向到文件中,然后再取文件(> 、>>)

system("cp -rp dongdir dongdir111");

‘1’、1、0x01的不同:

‘1’为字符,其对应的十进制为49,对应的十六进制为0x31

1为整型,对应的十进制为1,对应的十六进制为0x01

十进制是逢十进一,十六进制是逢十六进一,如下表,可见0~9中,十进制和十六进制数是完全相同的,可直接用“==”。

int

0x

0

0(0x00)

1

1 (0x01)

2

2(0x02)

......

......

8

8(0x08)

9

9(0x09)

10

A(0x0A)

11

B(0x0B)

15

F(0x0F)

字符(ASCII)与进制之间的转换

字符到进制

#include#include#include

voidmain() {char aa = (int)'b';//将ASCII转换为整数

char bufx[120];

itoa(aa, bufx,16);//进制转换,2 8 10 16

int lend =strlen(bufx);

bufx[lend]= 0;//截断数组//输出:2----62

printf("%d----%s", lend,bufx);//输出进制转换后的值

}

十六进制到字符串

#include#include

voidmain() {char chx[] = { 0x82,0x07,0x00,0x01,0x00,0x02,0x6e,0x62,0x00};char j = 0;const int lenx = sizeof(chx);charstrxto[lenx];for (j = 0; j

{

printf("%c", chx[j]);

strxto[j]= (char)chx[j];

}

printf("len:%d--data:%s--", lenx,strxto+6);

}

条件/循环语句:

switch…case…break

条件可以是数字(如十进制、十六进制等),可以是字符(如‘a’等)

goto

使用时语句标号和goto必须在同一个函数内,语句标号和goto的前后位置无规定

for(初值,条件,初值变化){ 循环体;}

执行循序:初值->条件->循环体->初值变化->条件->循环体…

#include

voidmain(){

inti;

for(i=0;i<3;++i){

printf("i1:%d

",i); //0 1 2

}

for(i=0;i<3;i++){

printf("i2:%d

",i); //0 1 2

}

}

程序的四大区

代码区(Code):

指用来存放程序中执行代码的一块内存区域。区域大小在程序运行前就已经确定,并且内存区域通常属于只读,某些架构也允许代码段为可写,在代码段中,也有可能包含一些只读的常数变量,例如字符串常量等。

数据区(data):

全局变量、字符串、静态变量

指用来存放程序中已初始化的全局变量的一块内存区域。属于静态内存分配。

堆(heap):

堆是用于存放进程运行中被动态分配的内存段,它的大小并不固定,可动态扩张或缩减。当进程调用malloc等函数分配内存时,新分配的内存就被动态添加到堆上(堆被扩张);当利用free等函数释放内存时,被释放的内存从堆中被剔除(堆被缩减)。

//声明空间//返回值void指针//参数表示大小//如果内存申请失败(内存空间不足),则返回NULL

void *malloc(unsigned intsize);//释放空间

void free(void *p);

栈(stack):

是用户存放程序临时创建的局部变量的一块内存区域。也就是函数括号{}中定义的变量(但不包括static声明的变量,static意味着在数据段中存放变量)。除此以外,函数在被调用的时候,其参数也会被压入发起调用的进程栈中,并且调用结束后,函数返回值也会被放入栈中。由于栈的先进后出的特点,栈特别方便用来保存/恢复调用现场。从这个意义上讲,可以把栈看成一个寄存、交换临时数据的内存区。

例子

int a = 0;//数据区

char *p1;//数据区

intmain()

{int b; //栈区

char s[] = "abc";//栈区

char *p2;//栈区

char *p3 = "123456";//p3在栈区,123456/0在文字常量区(数据区)

static int c = 0;//静态初始化区(数据区)

p1 = (char *)malloc(10);

p2= (char *)malloc(20);//分配得来的10和20字节得区域就在堆区。

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值