当前位置:首页 » 编程语言 » c语言清零程序
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言清零程序

发布时间: 2023-03-22 13:21:25

‘壹’ c语言字符数组清零方法

#include<stdio.h>
#include<string.h>
int main()
{
char a[10];
scanf("%s",a);
memset(a,'\0',sizeof(a));
printf("%s\n",a);
}
//本函数段就是利用memset函数将数组a清零
所以就是使用 memset(a,'\0',sizeof(a));

‘贰’ C语言 结构体清零

结构体是直接做入参的。复制只会将qingling函数中的数据清零。应用指针
void qingling(structType* haoma){
haoma->shou = 0;
haoma->zhong = 0;
haoma->wei = 0;
}

这个和qingling(int i)函数中改i值,但调用者值不变是一回事。

‘叁’ 如何在c语言中清空文件里的内容(很急)

在c语言中清空文件里的内容的代码:

示例:

#include "

stdio.h"

main()

{FILE *fp;

if(fp=fopen("要清空的件","w+")==NULL)/*以写的方式打开已经存的文件相当于是答清空。*/

{printf("Error.");

getch();

exit(0);}

fclose(fp);

(3)c语言清零程序扩展阅读

C语言remove()函数:删除文件或目录

clude<stdio.h>

int main(){

charfilename[80];

printf("Thefiletodelete:");

gets(filename);

if(remove(filename)==0)

printf("Removed%s.",filename);

else

perror("remove");

}

‘肆’ 求大佬帮写一个C语言程序,输入一个n,能对随便某一位清零的程序

#include<stdio.h>
intmain()
{inta,n;
scanf("%d%d",&n,&a);
a&=~(1<<n);
printf("%d ",a);
return0;
}

‘伍’ c语言 关于字符数组和整型数组清零

C语言数组和整型数组清空方法,示例:

1、整数数组清零

函数:void bzero(void *s, int n)

头文件: #include <string.h>

功能说明:将字符串s的前n个字符置为0,一般n取sizeof(s),将整块空间清零;

举例:char str[10]; bzero(str, sizeof(str)); 也可以将整个结构体清零;

2、数组清空

使用时间:94s

for( k = 0 ; k <10000 ; k++ )

for( i = 0 ; i<MAX; i++ )

for( j = 0;j < MAX; j++ )

a[i][j] = 0;

(5)c语言清零程序扩展阅读

C语言结构体初始化

1、定义:

struct InitMember

{

int first;

double second;

char* third;

float four;

};

2、定义时赋值:

struct InitMember test = {-10,3.141590,"method one",0.25};

‘陆’ c语言数组怎么清零

c语言不能对这个数组赋值,只能通过遍历数组达到给数组中每个元素赋值的目的。初始化的时候可以用inta[4]={0};这样给整个数组元素赋值为0,若想给已初始化的数组清零,也只能遍历数组。

在C语言中,所谓的“清空”,意思是“无视里面的数据”,而不是“让里面没有数据”。有时候可能需要把一个数组清零,意思是全部数据都用0填充,可以用库函数来实现。假设数组名为a,无论什么类型也无论几维都一样,可以写成memset(a,0,sizeof(a));

(6)c语言清零程序扩展阅读:

在C语言中, 数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。

关于可变长数组(VLA)的问题:原来的C89标准中是不允许可变长数组出现的,但是在C99标准中,加入了对VLA的支持,但是支持的编译器不多,而且由于栈溢出的安全问题,没有太多的人敢用这个可变长数组,所以在C11标准中又把它规定为可选实现的功能了。

‘柒’ 51单片机C语言程序4个独立按键实现对数码管数字显示的加减清零等

#include<reg52.h>
//P0是数码管。P1是LED.P2是按键
sbitKEY_OUT_1=P2^3;
sbitKEY_OUT_2=P2^2;
sbitKEY_OUT_3=P2^1;
sbitKEY_OUT_4=P2^0;

#defineucharunsignedchar
#defineulintunsignedlong
#defineFrequency10//定时器中断时间=f*T
#defineTime1//一个周期1ms
#defineTubeNumber6//数码管个数
#defineKeyLine4//矩阵按键行数
#defineKeyColumn4//矩阵按键列数
//数码管真值表
ucharcodeLED_Number[]={0x0C,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
//ucharcodeLED_Alphabet[]={0x88,0x83,0xC6,0xA1,0x86,0x8E,0x89,0xC7,0x8C,0xC1,0x91,0x9C};
/*0~9
A~F(b、d为小写)HLPUyo*/
ucharLED_Buff[TubeNumber]={0xff,0xff,0xff,0xff,0xff,0xff};
/*数码管显示缓冲区,0xff确保初始时都不亮.
不可写成ucharcodeLED_Buff[]。code定义变量写入room,不可修改*/
//矩阵按键编号到标准盘码的映射表
ucharcodeKeyCodeMap[4][4]={
(0x31,0x32,0x33,0x26),//数字键1、数字键2、数字键3、向上键
(0x34,0x35,0x36,0x25),//数字键4、数字键5、数字键6、向左键
(0x37,0x38,0x39,0x28),//数字键7、数字键8、数字键9、向下键
(0x30,0x1B,0x0D,0x27)};//数字键0、ESC键、回车键、向右键
ucharStaFlag[KeyLine][KeyColumn]={(1,1,1,1),(1,1,1,1),(1,1,1,1),(1,1,1,1)};//按键是否稳定标志
voidStartTime0();
voidTubeDisplay(ulintsec);
ulintpow(x,y);
voidTubeScan();
voidKeyAction(ucharkeycode);
voidKeyDriver();
voidKeyScan();
voidmain()
{
P1=0x08;//使能U3,选择数码管。
StartTime0();
while(1)KeyDriver();
}
//定时器0启动函数
voidStartTime0()
{
EA=1;
ET0=1;
TMOD=0x01;
TH0=(65536-Time*100)/256;
TL0=(65536-Time*100)%256;
PT0=1;
/*定时器0优先中断控制位。
IP这个寄存器的每一位,表示对应中断的抢占优先级,每一位的复值都是0,当我们把某一位设置为1的时候,这一位优先级就比其它位的优先级高了。
比如我们设置了PT0位为1后,当单片机在主循环或其他中断程序执行时,一旦TO发生中断,作为更高优先级,程序马上执行T0.若在T0程序执行时,
其他中断程序发生中断,仍执行TO直到T0中断结束后再执行其他程序。
*/
}
//中断服务函数
voidTo_time0()interrupt1using0
{
staticucharcnt;//记录TO中断次数
// staticulintsec;//记录经过秒速
//判断是否溢出
if(TF0==1)
{
TF0=0;
TH0=(65536-Time*100)/256;
TL0=(65536-Time*100)%256;
}

if(cnt>=Frequency)
{
cnt=0;
//sec++;
// Tube_Display(sec);
TubeScan();
KeyScan();
}
}
//数码管显示函数
voidTubeDisplay(ulintnom)
{
ucharm=2;//小数部分位数
uchari;//传输索引
//秒速达到上限清零
if(nom>pow(10,TubeNumber-m))nom=0;
//分别传输小数部分和整数部分
for(i=0;i<m;i++)
LED_Buff[i]=LED_Number[nom/pow(10,i)%10];
for(i=0;i<(TubeNumber-m);i++)
LED_Buff[i+m]=LED_Number[nom/pow(10,i)%10];
//点亮小数点
LED_Buff[m]&=0x7f;
}
//平方运算函数
ulintpow(x,y)//x为底,为幂
{
ulintp,i=1;
//平方运算
for(i=1;i<=y;i++)
p*=x;
//输出结果
returnp;
}
//数码管动态函数
voidTubeScan()
{
staticuchari=0;//动态扫描索引
//关闭所有段选位,数码管消隐
P0=0xff;
//for(i=0;i<Tube_number;i++)
P1=(P1&0xf8)|i;//位选索引赋值到P1口低3位
P0=LED_Buff[i];//缓冲区中的索引位置数据传输到P0口
if(++i>=TubeNumber)i=0;//索引递增循环,遍历整个缓冲区
}
//矩阵按键动作函数
voidKeyAction(ucharkeycode)
{
staticulintresult;
ulintnom=0;
//输入数字0~9
if((keycode>=0x30)&&(keycode<=39))
{
nom=(nom*10)+(keycode-0x30);//十进制整体左移,新数进入各位
TubeDisplay(nom);
}
//输入方向键
if((keycode>=0x25)&&(keycode<=28))
switch(keycode)
{
case0x26:result+=nom;nom=0;TubeDisplay(result);
case0x28:result-=nom;nom=0;TubeDisplay(result);
case0x25:result=1;result*=nom;nom=0;TubeDisplay(result);
case0x27:result=1;result/=nom;nom=0;TubeDisplay(result);
}
elseif(keycode==0x0d)TubeDisplay(result);//输入回车键,输出最终结果
elseif(keycode==0x1b)//输入ESC键,清零
{
nom=result=0;
TubeDisplay(nom);
}
}
//矩阵按键驱动函数
voidKeyDriver()
{
ucharl,c;
staticucharbackup[KeyLine][KeyColumn]={(1,1,1,1),(1,1,1,1),(1,1,1,1),(1,1,1,1)};//按键值备份,保存前一次值
for(l=0;l<KeyLine;l++)
{
for(c=0;c<KeyColumn;c++)
{
if(backup[l][c]!=StaFlag[l][c])
{//检测按键动作
if(backup[l][c]==1)//按键按下时执行
KeyAction(KeyCodeMap[l][c]);//调用动作函数
backup[l][c]=StaFlag[l][c];//刷新前一次备份值
}
}
}
}
//矩阵按键扫描函数
voidKeyScan()
{
ucharl=0;//矩阵按键扫描输出索引
ucharc=0;//矩阵按键扫描列索引
ucharkeybuff[KeyLine][KeyColumn]={(0xff,0xff,0xff,0xff),(0xff,0xff,0xff,0xff),
(0xff,0xff,0xff,0xff),(0xff,0xff,0xff,0xff)};//矩阵按键扫描缓冲区
//将一行的四个按键移入缓冲区
for(l=0;l<KeyColumn;l++)
keybuff[l][c]=((0xfe|(P2>>(4+l))&0x01));
//按键消抖
for(l=0;l<KeyLine;l++)
{
if((keybuff[l][c]&0x0f)==0x00)//连续4次扫描都为0,判断4*4ms内都是按下状态,可认为按键已稳定按下
StaFlag[l][c]=0;
elseif((keybuff[l][c]&0x0f)==0x0f)//连续4次扫描都为1,判断4*4ms内都是弹起状态,可认为按键已稳定弹起
StaFlag[l][c]=1;
}
for(c=0;c<KeyColumn;c++)
{
switch(c)//根据索引,释放当前输出脚拉低下次的根据索引
{
case0:KEY_OUT_4=1;KEY_OUT_1=0;break;
case1:KEY_OUT_1=1;KEY_OUT_2=0;break;
case2:KEY_OUT_2=1;KEY_OUT_3=0;break;
case3:KEY_OUT_3=1;KEY_OUT_4=0;break;
default:break;
}
}
}