问题标题: 酷町堂:5356 查找字符串 (要崩溃了)

1
0
已解决
赵逸凡
赵逸凡
初级启示者
初级启示者
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
int n;
string a[100005];
string c;
bool cmp(string x,string y )
{
    return x<y;
}
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)
        cin>>a[i];
    cin>>c;
    sort(a,a+n,cmp);
    for(int i=1;i<=n;i++)
    {
        if(a[i].substr(1,1).compare(c)==0)
            cout<<a[i]<<endl;
    }
    return 0;
}

就是在

if(a[i].substr(1,1).compare(c)==0)
            cout<<a[i]<<endl;

这个判断出错(判断两个字符串是否相等),无论怎么调都输出不了,求助啊


0
已采纳
李泽远
李泽远
高级天翼
高级天翼

if条件改成:

if(a[i].substr(0,c.size()).compare(c)==0)

从0开始截,截c.size个

李泽远在2020-08-02 11:30:51追加了内容

另外,下标从1开始的话,sort里面的地址要+1:

sort(a+1,a+n+1,cmp);

李泽远在2020-08-02 11:31:20追加了内容

c是一个字符串啊,不是一个字符

0
我要回答