⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mystring.lst

📁 UCOS在C51上实现的两个例子
💻 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 + -