标题:请教编程达人
只看楼主
lili3499
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2016-6-12
结帖率:14.29%
已结贴  问题点数:10 回复次数:4 
请教编程达人
该程序是找子串的位置,在codevs题库中测试未能通过,但做DEV-c++中编译运行没问题,请教是哪里出了问题
#include<cstdio>
#include<string>
#include<iostream>
using namespace std;
int main()
{
    string a,z;
    int n;
    getline(cin,a);
    getline(cin,z);
    n=a.find(z);
    printf("%d",n+1);
    return 0;
}

[此贴子已经被作者于2016-6-24 17:09编辑过]

搜索更多相关主题的帖子: include return 
2016-06-24 16:35
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:10 
题目要求是什么?
2016-06-24 18:35
lili3499
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2016-6-12
得分:0 
给出字符串a和字符串b,保证b是a的一个子串,请你输出b在a中第一次出现的位置。
输入:仅一行包含两个字符串a和b
输出:仅一行一个整数
2016-06-24 20:57
lili3499
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2016-6-12
得分:0 
修改了程序,让两个字符串在一行内输入,编译可以通过,可是运行结果不对
#include<cstdio>
#include<cstring>
#include<string>
#include<iostream>
using namespace std;
int main()
{
    char a[100],b[100],c[100];
    string x,y;
    int n,m=0,i=0;
    gets(a);
    n=strlen(a);
    while(a[i]!=' ')
    {
        b[i]=a[i];
        i++;
        }
    for(int j=i+1;j<n;j++)
    c[m++]=a[j];
    x=b;
    y=c;
    n=x.find(y);
    printf("%d",n+1);
    return 0;
}

[此贴子已经被作者于2016-6-24 21:51编辑过]

2016-06-24 21:28
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
为什么不将
getline(cin,a);
getline(cin,z);
直接改为
cin >> a >> z;
2016-06-24 21:53



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-466324-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.663740 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved