微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 几个C语言的好函数

几个C语言的好函数

时间:11-24 来源:互联网 点击:
判断回文

int isReverseStr(char * aStr) 在主函数判断返回值

int i,j;

int found=1;

if(aSTR==null)

return -1;

j=strlen(aStr);

for (i=0;i

if (*(aStr+i)!=*(aStr+j-i-1)){//假如不相等 就进入。

found=0;

break;

}

return found;

}

//去除后面的零,并给出除零外的长度 可以用打印函数调用

unsigned char zwwlen(unsigned char *buf,unsigned char len)

{

char i;

for (i=(len-1);i>=0;i--)

{

if (buf[i]!= 0)

break;

}

if (i<0)//如果是0输出1个0

{

i=0;

}

return (i+1);

}

//根据上题 的打印函数(51单片机串口接打印GP5860iii)

void print( unsigned char *buf,unsigned char len )

{

ES = 0 ;

for( ; len > 0 ; len -- )

{

SBUF = *buf ;

while( !TI )

{

;

}

TI = 0 ;

buf ++ ;

}

ES = 1 ;

}

//把数字转成16禁止

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

{

string[i*2] = IdInfo.workernum[i]>>4;

string[i*2 +1] =IdInfo.workernum[i] & 0x0f;

}

//处理string[i] 的内容放到string[j]中 如果是A开始是B结束

for (i=0,j=0;i<20;i++)

{

if (string[i] == 0x0B)

{

break; //B结束

}

else if(string[i] <0x0A)//是数字 加字符0 +0x30

{

string[j++] = string[i] + 0;

}

else if (string[i] > 0x0B)

{

string[j++] = ((string[i]<4)|string[i+1])&0x7F;

}

}

string[j] = ;//结束符

//string[j] 里面的内容就是A 开始 B结束的全部内容

//这里打印的是string[j]的内容所以处理了A 开始B结束 掉之前的函数

print( string , 10 );

//根据模式选择消费金额

//消费金额

switch ( *(buffdata+1) )

{

case SM_REC_CON_MIX: //混合消费记录

//取出补助消费

buse = *(buffdata+11) ;

buse = (buse<8) | *(buffdata+12) ;

buse = (buse<8) | *(buffdata+13) ;

//取出主钱包消费金额

TempNumber = *(buffdata+18) ;

TempNumber = (TempNumber<8) | *(buffdata+19) ;

TempNumber = (TempNumber<8) | *(buffdata+20) ;

//计算总的消费金额

TempNumber += buse ;

break ;

default: //主钱包消费记录, 补助钱包消费记录

TempNumber = (* ( ulong * ) (buffdata+18))>>8 ;

break;

}

print( pconsum , 10 ) ;

print(string,sprintf( string, "%lu",TempNumber/100 ));

print(pdian, 1) ;

sprintf( string, "%8.3lu",TempNumber );

print( string+6 , 2 ) ;

// print( pyuan , 2 ) ;

print("x0Dx0A",2); //打印机命令 回车换行


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top