主观

阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。

  【函数1说明】

 函数palindrome(char s[])的功能是:判断字符串s是否为回文字符串。若是,则返回0,否则返回-1。若一个字符串顺读和倒读都一样时,则可称该字符串是回文字符串。例如,“LEVEL”是回文字符串,而“LEVAL”不是。

 【函数1】

 int palindrome(char s[]{

   char *pi, *pj;

   pi=s; pj=s+strlen(s)-1;

   while(pi<pj&&(1)){

     pi++; pj--;

   }

   if((2))return-1;

   else return 0;

 }

 【函数2说明】

 函数f(char *str, char del)的功能是:将非空字符串str分割成若干个子字符串并输出,del表示分割时的标志字符。

 例如,若str的值为“33123333435”,del的值为“3”,调用此函数后,将输出三个子字符串,分别为“12”、“4”和“5”。

 【函数2】

 void f(char *str, char del){

   int i,j, len;

   len=strlen(str);

   i=0;

   while(i<len){

     While((3))  i++;   /*忽略连续的标志字符*/

     /*寻找从str[i]开始直到标志字符出现的一个子字符串*/

     j=i+1;

     while(str[j]!=del && str[j]!='\0')j++;

      (4)='\0';  /*给找到的字符序列置字符串结束标志*/

     printf("%s\t",&str[i]);

      (5);

   }

 }

参考答案
您可能感兴趣的试题

阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。

  【说明】

 本题中的函数encode()和decode()分别实现对字符串的变换和复原。其中变换函数encode()顺序考查已知字符串的字符,按以下规则逐组生成新字符串:

 (1)若已知字符串的当前字符不是数字字符,则将该字符复制在新字符串中。

 (2)若已知字符串的当前字符是一个数字字符,且它之后没有后继字符,则简单地将它复制到新字符串中。

 (3)若已知字符串的当前字符是一个数字字符,并且还有后继字符,设该数字字符的面值为n,则将它的后继字符(包括后继字符是一个数字字符)重复复制n+1次到新字符串中。

 (4)以上述一次变换为一组,在不同组之间另插入一个下划线“_”用于分隔。例如,encode()函数对字符串26a3t2的变换结果为666_a_tttt_2。

 复原函数decode()做与变换函数encode()相反的工作。即复制不连续相同的单个字符,而将一组连续相同的字符(不超过10个)变换成一个用于表示重复次数的数字符和一个重复出现的字符,并在复原过程中略过变换函数,为不同组之间添加的一个下划线字符。

 假定调用变换函数encode()时的已知字符串中不含下划线字符。

 【函数】

 int encode(char *instr, char *outstr){

   char *ip, *op, c; int k,n;

   ip=instr; p=outstr;

   while(*ip){

     if(*ip>='0' && *ip<='9' && *(ip+1)){

       n=(1);

       c=(2);

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

         *op++=c;

     }

     else (3);

     *op++='_';

     ip++;

   }

   if(op>outstr)op--;

    (4);

   return op-outstr;

 }

 int decode(char *instr, char *outstr){

   char *ip, *op, c; int n;

   ip=instr; p=outstr;

   while(*ip){

     c=*ip; n=0;

     while(*ip==c&&n<10){

       ip++; n++;

     }

     if((5))*op++='0'+n-1;

     *op++=c;

     if((6))ip++;

   }

   *op='\0';

   return op-outstr;

 }

¥

订单号:

遇到问题请联系在线客服

订单号:

遇到问题请联系在线客服