问题标题: 酷町堂:2723

1
0
已解决
周建勋
周建勋
中级光能
中级光能

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
    char s[265];
    int x,c;
    gets(s);
    cin>>x;
    int l=strlen(s);
    for(int i=3;i<l;i++)
    {
            cin>>s[i];
            if(s[i]==i)    
            cout<<s[i]+1;
    }
    return 0;
}

咋错了


0
1
鲁天一
鲁天一
初级光能
初级光能

周建勋 你好!

看到你的代码,我想叹口气

 for(int i=3;i<l;i++)

为什么要从三开始循环?最好从0开始。

  for(int i=3;i<l;i++)
    {
            cin>>s[i];
            if(s[i]==i)    
            cout<<s[i]+1;
    }

break呢?我只找第一个单词出现的第几个字符,你这样会输出很多(出现一次输出一次)

cin>>x;   if(s[i]==i)

这个,你输入的是x,比较却比较成i,这是啥思想?

总之,你这代码没有运行。

主题代码如下:

for(int i=0;i<strlen(a);i++)
    {
        if(a[i]==s)
        {
            cout<<i+1;
            break;
        }
    }

望采纳

0
0
周俊豪
周俊豪
高级光能
高级光能

这题是学字符串的基础,用字符数组太过麻烦,就告诉你一点字符串里的查找函数吧(find);

核心代码如下:

    char c;//字符c;
    string a;//字符串a,字符串的类型是string;
    int l,s;//求位数的l,查找在第几位出现的s;
    cin>>c;//输入字符c;
    getline(cin,a);//getline(cin,?);是字符串中的输入;
    getline(cin,a);//输入两遍是为了抵消cin后的结束符\0;你们以后会学到;
    l=a.size();//用整形l来保存字符串a的长度,?.size();是求长度的函数;
    s=a.find(c,0);//用整形s来保存字符c在字符串a的第几位出现了;
    cout<<s+1;//因为字符串的下标是从0开始的,所以我们的第4位是字符串的第3位,要输出位数+1才是正确答案;

注意:头文件:#include<string>;

望大佬采纳(打了整整半小时只愿能帮到你!)!;

0
叶子煊
叶子煊
中级光能
中级光能

我不太建议你用这个方法

这一题需要用到字符串的一个find函数

这样会比较简单

这是核心部分:

    getline(cin,b);
    getline(cin,a);
    w=a.find(b,0)+1;
    cout<<w;
    return 0;

记得定义a,b(字符串)

getline是输出字符串的函数

find的用法是

字符串名称.find(字符串名称(查找的字符串),数字(从...开始查找))

当然需要用一个变量(w)来存位置

字符串下标是从0开始

所以要++

最后输出第一次出现的位置

望采纳!!!

希望对你有一定帮助!!!

我要回答