函数my_cmp()的功能是比较字符串s和t的大小,当s等于t时返回0,否则返回s和t的第一个不同字符的ASCII码差值,即s > t时返回正值,当s < t时返回负值。请填空。my_cmp(char *s, char *t){while (*s == *t){if (*s == ′\0′)return 0;++s; ++t;} return 【18】 ;}

题目

函数my_cmp()的功能是比较字符串s和t的大小,当s等于t时返回0,否则返回s和t的第一个不同字符的ASCII码差值,即s > t时返回正值,当s < t时返回负值。请填空。

my_cmp(char *s, char *t)

{while (*s == *t)

{if (*s == ′\0′)return 0;

++s; ++t;

} return 【18】 ;

}


相似考题
更多“函数my_cmp()的功能是比较字符串s和t的大小,当s等于t时返回0,否则返回s和t的第一个不同 ”相关问题
  • 第1题:

    下列给定程序中,函数fun()的功能是:从s所指字符串中,找出t所指字符串的个数作为函数值返回。例如,当s所指字符串中的内容为abcdabfab,t所指字符串的内容为ab,则函数返回整数3。

    请改正程序中的错误,使它能得出正确的结果。

    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构.

    试题程序:

    include <conio.h>

    include <stdio.h>

    include <string.h>

    int fun (char *s, char *t)

    {int n; char *p, *r;

    n=0;

    while(*s)

    {p=s;

    r=t;

    while (*r)

    /**************found**************/

    if(*r==*p) {r++; p++}

    else break;

    /*************found**************/

    if(r=='\0')

    n++;

    s++;

    }

    return n;

    }

    main()

    {char s[100], t[100]; int m;

    clrscr();

    printf("\nPlease enter string s: ");

    scanf ("%s",s);

    printf("\nPlease enter substring t: ");

    scanf ("%s",t);

    m=fun (s,t);

    printf("\nThe result is: m=%d\n", m);

    }


    正确答案:(1)错误:if(*r==*p) {r++;p++} 正确:if(*r==*p) {r++;p++;} (2) 错误;if(r=='\0') 正确:if(*r=='\0')
    (1)错误:if(*r==*p) {r++;p++} 正确:if(*r==*p) {r++;p++;} (2) 错误;if(r=='\0') 正确:if(*r=='\0') 解析:从字符串s中找出于串t的方法是:从第一个字符开始,对字符串进行遍历;若s串的当前字符等于t串的第1个字符,两字符串的指针自动加1,继续比较下一个字符;若比较至字符串t的结尾,则跳出循环;若s串的字符和t串的字符不对应相同,则继续对下一个字符进行处理。

  • 第2题:

    函数mycmp(char *s,char *t)的功能是比较字符串s和t的大小,当s等于t时返回0,当s>t时返回正值,当s<t时返回负值,请填空。mycmp( char *s,char *t){ while (*s==*t) { if (*s==’\0’)return 0; ++s;++t; } return();}


    正确答案:*s–*t
    函数的两个形参是两个字符指针变量,字符串的首地址是指针变量的值,*s和*t表示字符串数组s和t的第一个字符,在while循环中,是通过s和t值的不断变化来改变指针所指向的字符的,要得到s和t所指向的不同字符的ASCII码的差值,必须使用“*s–*t”。

  • 第3题:

    函数strcmp( )的功能是对两个字符串进行比较,当s所指字符串和t所指字符串相等时,返回值为0;

    当s所指字符串大于t所指字符串时,返回值大于0;当s所指字符串小于t所指字符串时,返回值小于

    0(功能等同于库函数strcmp( ) ),请填空。

    include <stdio.h>

    int strcmp ( chat * s, char * t)

    { while( * s && * t && * s=【 】

    { s++;t++; }

    return 【 】;

    }


    正确答案:* 或t[0] * s- *t 或 * s-t[0]或s[0]- * t或s[0]-t[0]
    * 或t[0] * s- *t 或 * s-t[0]或s[0]- * t或s[0]-t[0] 解析:对字符串比较的方法是依次对两字符串对应位置上的字符两两比较,当出现第一对不相同的字符时,即由这两个字符(ASCⅡ码值)决定所在串的大小。

  • 第4题:

    下面函数的功能是( ) sss(s,t) char *s,*t; { while((*s)&&(*t)&&(*t++==*s++)); return(*s- * t); }

    A.求字符串的长度

    B.比较两个字符串的大小

    C.将字符串s复制到字符串t中

    D.将字符串s接续到字符串t中


    正确答案:B

  • 第5题:

    下列函数的功能是set(s,t){ char *s,*t; while((*s)&&(*t)&&(*t++==*s++)); return(*s-*t);}A.求字符串的长度B.比较两字符串的大小C.将字符串s复制到字符串t中D.将字符串s连接到字符串t后


    正确答案:B
    在本题中,从题目给出的四个选项我们就可以知道,程序是对两个字符串进行操作。下面将具体分析程序。
    程序首先定义两个字符型的指针变量s和t,从后面的程序中不难看出这两个指针变量应该用来对两个字符串进行操作处理。用循环来对字符串进行处理时,循环继续的条件是指针变量s和指针变量t所指向的结果值不为0,且两结果值相等。很显然,指针变量s和指针变量t所指向的结果值不为0,说明两字符串没有结束,只有结束时才为0,而结果值相等说明两字符相等,如果不等,循环则结束,此时程序将要求返回不等元素之间的差值,从差值的正负关系我们可以判断出哪个元素更大。综上所述,程序段的作用是用来比较两字符串的大小。因此,本题正确的答案选B。