下面是我在[url=http://www.cpbdqn.com/jiuyehaoma.html]青鸟[/url]所学的一些东西,拿出来跟大家分享一下:

题目是这样的:输入两个字符串,求出第二个字符串是从第一个字符串的倒数第几个开始
如:字符串一是:"abcdef" 字符串二是"de",那么程序就是倒数第3个,如果没有在第一个字符串中找到第二个字符串,那么就输出-1;前提是不用string头文件;
下面是小弟的代码,代码完成了题目的要求,但是有一个问题
就是当你第一个字符串输入两个相同的字符串并且字符串长度大于3时,不论第二个字符串是什么,都会输出-1
如 字符串一是"abcabccba" 字符串二是"cba"那么就会输出-1 ;我想了半晚上没想出为什么 那位大侠帮忙解决下

#include <iostream>
using namespace std;
int fun(char *ps,char *pt)
{
    int len_ps=0;
    int len_pt=0;
    int sum=0;
    int count;
    while(*ps)
        {
            ps++;
            len_ps++;
        }
    while(*pt)
        {
            pt++;
            len_pt++;
    } 
    ps=ps-len_ps;
    pt=pt-len_pt;
    for (int i=0;i<len_ps;i++)
    {
        for (int j=0;j<len_pt;j++)
        {
            if (ps[i+j]==pt[j])
            {
                sum++;
                count=i;
            }
            else
                break ;
        }
    }
    if (sum==len_pt)
    {
        return len_ps-count;
    }
    else
            return -1;
}
int main()
{
    char *psc=new char[100];
    char *ptc=new char[100];
    cout<<"请输入一个字符串:"<<endl;
    cin>>psc;
    cout<<"请输入要查询的字符串:"<<endl;
    cin>>ptc;
    int pf;
    pf=fun(psc,ptc);
    if (pf!=-1)
    {
        cout<<"你所查询的字符串位于倒数第"<<pf<<"个!!!"<<endl;
    }
    else
        cout<<pf<<endl;
    return 0;
}