it stopped with signal SIGSEGV,Segmentation fault,出现了这个错误提示

jay603 发布于 2012/12/03 14:53
阅读 2K+
收藏 0
#include<iostream>
#include<string>
#include<vector>

using namespace std;
using std::vector;

int native_search(char *s1,char *s2);
int  main()
{
    char *s1,*s2;
    int len1,len2;
    int i,k,count;
    vector<int> location;
    cout << "请输入要查找的单词:";
    cin >> s1;
    cout << "请输入句子:";
    do
    {
        *s2=cin.get();
    }while(*s2);
    
    while(*s2)
    {
        i=native_search(s1,s2);
        if(i<0)
        {
            cout << "没有查找到该单词";
            return 0;
        }
        else
        {
            count++;
            location.push_back(i);
        }
    }
    cout << "单词在句子中出现的次数为" << count << endl;
    cout << cout << "次匹配位置分别为:";
    for(k=0; k<=count; k++)
        cout << location[k]<< "";
    return 0;
}

int native_search(char * s1,char *s2)
{
    int n;
    const char *ss2=s2;
    while(*s2)
    {
        for(n=0; *(s1+n)==*(s2+n); n++)
        {
            if(!*(s1+n+1))
                return    int(s2-ss2);
        }
        s2++;
    }
    return -1;
} 
大家帮忙看看,这段代码有什么问题,主要实现简单的字符串匹配
加载中
0
杨同学
杨同学
你的s1,s2没有初始化,应该malloc申请空间然后把s1, s2指向申请的空间
返回顶部
顶部