C:2-8

实验一:

#define  YES  1

#define  NO  0

/*htoi:convert hexadecimal string s to integer*/

int htoi(char s[])

{

  int hexdigit,i,j,inhex,n;

  i=0;

  if(s[i]=='0'){    //skip optional 0x or 0X

    ++i;

    if(s[i]=='x'||s[i]=='X')

       ++i;  

  }

  n=0;   //intager value to be returned

  inhex=YES; //assume valid hexadecimal digit

  for(;inhex==YES;++i){

    if(s[i]>='0'&&s[i]<='f')

        hexdigit=s[i]-'0';

    else if(s[i]>='a'&&s[i]<='f')

          hexdigit=s[i]-'a'+10;

      else if(s[i]>='A'&&s[i]<='F')

        hexdigit=s[i]-'A'+10;

    else

         inhex=NO; //not a valid hexadecimal digit

    if(inhex==YES)

        n=16*n+hexdigit;

  }

  return n;

}

把十六进制的字符串转换为与之等价的整型值.

 

实验二:

函数squeeze(s1,s2), 将字符串s1中任何与字符串s2中字符匹配的字符都删除。

/*squeeze:delete each char in s1 which is in s2*/

void squeeze(char s1[],char s2[])

{

      int i,j,k;

      for(i=k=0;s1[i]!='/0';i++){

           for(j=0;s2[j]!='/0'&&s2[j]!=s1[i];j++)

               ;

        if(s2[j]=='/0')   //end of  string - no  match

           s1[k++]=s1[i];

      }

      s1[k]='/0';

}

 

实验三:

/*any:return first location in s1 where any char from s2 occurs*/

Int any(char s1[],char s2[])

{

  int ij

  fori=0;s1[i]!=/0;i++

      for(j=0;s2[j]!= ‘/0’;j++)

         if(s1[i]= =s2[j])    //match found?

           Return i;      //location first match

     return -1      //otherwise,no match

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值