📄 mystring.lst
字号:
C51 COMPILER V7.50 MYSTRING 04/11/2006 17:11:48 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE MYSTRING
OBJECT MODULE PLACED IN mystring.OBJ
COMPILER INVOKED BY: D:\Keil C\C51\BIN\C51.EXE mystring.c LARGE BROWSE DEBUG OBJECTEXTEND
line level source
1 //**********************************************************************************
2 //杨屹 2002/08/20 第一版
3 //字符串操作函数
4 //联系方法:gdtyy@ri.gdt.com.cn(2003/07/31以前有效)
5 //**********************************************************************************
6 //使用方法:
7 //自包含
8 //与标准库函数用法相同。
9 //**********************************************************************************
10 #include <includes.h>
11
12 void yystrlwr(unsigned char *str)//将字符串全部转换成小写格式
13 {
14 1 int i;
15 1 unsigned char ch;
16 1 for(i=0;1;i++){
17 2 ch=*(str+i);
18 2 if(ch=='\0') break;
19 2 else if(ch>='A'&&ch<='Z') *(str+i)=ch-'A'+'a';
20 2 }
21 1 }
22
23 char yystrcmp(unsigned char *stra,unsigned char *strb)//比较a和b两个字符串的大小,a>b 1 a=b 0 a<b -1
24 {
25 1 int i;
26 1 unsigned char cha,chb;
27 1 for(i=0;1;i++){
28 2 cha=*(stra+i);
29 2 chb=*(strb+i);
30 2 if(cha=='\0'&&chb=='\0') return 0;
31 2 else if(cha>chb) return 1;
32 2 else if(cha<chb) return -1;
33 2 }
34 1 }
35
36 unsigned int yystrlen(unsigned char *str)//计算字符串长度,不包括'\0'标志。
37 {
38 1 unsigned int i=0;
39 1
40 1 while(*str++!='\0'){
41 2 i++;
42 2 }
43 1
44 1 return i;
45 1 }
46
47 bit StrToNum(unsigned char *Str,long int *Num)//字符串转换成数值(自动区分十进制“无前缀”和十六进制“0x”
-)
48 {
49 1 int i=0;
50 1 unsigned char ch;
51 1 long int x=0;
52 1
53 1 if(Str[0]=='0'&&(Str[1]=='x'|Str[1]=='X')){
54 2 i=2;
C51 COMPILER V7.50 MYSTRING 04/11/2006 17:11:48 PAGE 2
55 2 ch=Str[i];
56 2 while(ch!='\0'&&i<MaxLenStr){
57 3 if((ch<'0'||ch>'9')&&(ch<'a'||ch>'z')&&(ch<'A'||ch>'Z')) return 0;
58 3 else{
59 4 if(ch>='0'&&ch<='9') x=x*16+(ch-'0');
60 4 else if(ch>='a'&&ch<='z') x=x*16+(ch-'a'+10);
61 4 else x=x*16+(ch-'A'+10);
62 4 //x=x*10+(ch-'0');
63 4 }
64 3 i=i+1;
65 3 ch=Str[i];
66 3 }
67 2 if(i<MaxLenStr||Str[MaxLenStr]=='\0'){
68 3 *Num=x;
69 3 return 1;
70 3 }
71 2 else return 0;
72 2 }
73 1 else{
74 2 i=0;
75 2 ch=Str[i];
76 2 while(ch!='\0'&&i<MaxLenStr){
77 3 if(ch<'0'||ch>'9') return 0;
78 3 else x=x*10+(ch-'0');
79 3 i=i+1;
80 3 ch=Str[i];
81 3 }
82 2 if(i<MaxLenStr||Str[MaxLenStr]=='\0'){
83 3 *Num=x;
84 3 return 1;
85 3 }
86 2 else return 0;
87 2 }
88 1 }
89
90 bit StrToHEX(unsigned char *Str,long int *Num)//字符串转换成数值(默认字符串为十六进制数值表示)
91 {
92 1 int i=0;
93 1 unsigned char ch;
94 1 long int x=0;
95 1
96 1 ch=Str[i];
97 1 while(ch!='\0'&&i<MaxLenStr){
98 2 if((ch<'0'||ch>'9')&&(ch<'a'||ch>'z')&&(ch<'A'||ch>'Z')) return 0;
99 2 else{
100 3 if(ch>='0'&&ch<='9') x=x*16+(ch-'0');
101 3 else if(ch>='a'&&ch<='z') x=x*16+(ch-'a'+10);
102 3 else x=x*16+(ch-'A'+10);
103 3 }
104 2 i=i+1;
105 2 ch=Str[i];
106 2 }
107 1 if(i<MaxLenStr||Str[MaxLenStr]=='\0'){
108 2 *Num=x;
109 2 return 1;
110 2 }
111 1 else return 0;
112 1
113 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
C51 COMPILER V7.50 MYSTRING 04/11/2006 17:11:48 PAGE 3
CODE SIZE = 1260 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- 39
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -