The C Programming Language 练习题4-1

时间:2021-08-10 00:09:56

题目
编写函数 strindex(s, t),它返回字符串t在s中最右边出现的位置。如果s中不包含t,则返回-1。

题目分析
可以参考教材中寻找s中每行是否包含t的代码。

代码实现

#include <stdio.h>

int stringdex(char s[], char t[])
{
    int i, j, k, m;
    m = 0;
    for (i = 0; s[i] != '\0'; i++)
    {
        for (j=i, k=0; t[k]!='\0' && s[j]==t[k]; j++, k++)
            ;
            if (k > 0 && t[k] == '\0' && i > m )
                m = i;
    }
    if (m > 0)
        return m;
    else
        return -1;
}

int main()
{
    char line[] = "abcdefghijklmnopqrstuvwxyz1234abcdefghijkl";
    char pattern[] ="efgh";
    printf("%d\n", stringdex(line, pattern));
}