题目描述 Description

给出字符串a和字符串b,保证b是a的一个子串,请你输出b在a中第一次出现的位置。

输入描述 Input Description

仅一行包含两个字符串a和b

输出描述 Output Description

仅一行一个整数

样例输入 Sample Input

abcd bc

样例输出 Sample Output

2

数据范围及提示 Data Size & Hint

字符串的长度均不超过100

Pascal用户请注意:两个字符串之间可能包含多个空格

思路:因为它是用一行来输入两个字符串,所以必须得要把字符串拆分,我的思路是用一个字符串先存储整个串,再拆分成两个(这个很麻烦,部分聪明的童鞋已经想到边输入边存,这也是蛮好的),然后将子串中的第一个字母提出来,循环搜索字符串里面有没有这个字母,有的话判断这个字母后面的所有字母是不是与字符串中的一一对应,用一个ans来记录相同的字母数量,最后判断ans是否等于子串的长度(即子串与字符串中的一小段完全匹配),就可以输出了

代码如下:

 #include <stdio.h>
#include <string.h>
int main()
{
char a[],x[],y[];
int len,i,j,o=;
int ans=;
gets(a);
len=strlen(a);
for(i=;i<len;i++)//拆分存入字符串
{
if(a[i]!=' ')
{
x[i]=a[i];
}
else
{
x[i]='\0';
break;
}
}
for(j=i;j<len;j++)//拆分存入子串
{
if(a[j]!=' ')
{
y[o]=a[j];
o++;
}
}
y[o]='\0';//末尾加上结束
for(i=;i<strlen(x);i++)
{
if(x[i]==y[])//用第一个字母来找,如果匹配,判断后面的字母
{
for(j=;j<strlen(y);j++)
{
if(x[i+j]==y[j])//如果后面的字母与字符串匹配,ans++
{
ans++;
}
else //如果遇到一个不匹配的,结束,继续找
{
break;
}
if(ans==strlen(y))//判断子串是否完全符合字符串中的一段(即子串已经全部搜索完,就是正确答案)
{
printf("%d\n",i+);//输出子串第一个字母在字符串中的位置
return ;
}
}
}
}
return ;
}

CODE[VS]-寻找子串位置-字符串处理-天梯青铜的更多相关文章

  1. codevs 1204 寻找子串位置

    http://codevs.cn/problem/1204/ 1204 寻找子串位置  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 青铜 Bronze 题解  查看运行结果 ...

  2. C++之路进阶——codevs1204(寻找子串位置)

    1204 寻找子串位置  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 青铜 Bronze     题目描述 Description 给出字符串a和字符串b,保证b是a的一个子 ...

  3. wikioi 1204 寻找子串位置

    /*======================================================================== 1204 寻找子串位置 题目描述 Descript ...

  4. codevs 1204 寻找子串位置 KMP

    1204:寻找子串位置 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 18K  Solved: 8K Description 给出字符串a和字符串b,保 ...

  5. codevs1204 寻找子串位置

    题目描述 Description 给出字符串a和字符串b,保证b是a的一个子串,请你输出b在a中第一次出现的位置. 输入描述 Input Description 仅一行包含两个字符串a和b 输出描述  ...

  6. 寻找子串位置 codevs 1204

    题目描述 Description 给出字符串a和字符串b,保证b是a的一个子串,请你输出b在a中第一次出现的位置. 输入描述 Input Description 仅一行包含两个字符串a和b 输出描述  ...

  7. 寻找子串位置<codevs>

    KMP板子题; 如果不会可以参考其他算法书 代码: #include<iostream> #include<stdio.h> #include<stdlib.h> ...

  8. CODE[VS]-最小数和最大数-整数处理-天梯青铜

    题目描述 Description 输入n个数,n<=100,找到其中最小的数和最大的数 输入描述 Input Description 第一行一个整数n 接下来一行n个整数,每个整数不超过231 ...

  9. VS Code的插件安装位置改变

    VS Code的相关配置 VS Code的插件安装位置改变 可以通过创建连接,将默认的extensions位置,改变到D盘 Windows 链接彻底解决 vscode插件安装位置问题 mklink / ...

随机推荐

  1. IOS UI 第八篇:基本UI

    实现图片的滚动,并且自动停止在每张图片上     - (void)viewDidLoad{    [super viewDidLoad]; UIScrollView *scrollView = [[U ...

  2. C#通过模板导出Word(文字,表格,图片)

    C#通过模板导出Word(文字,表格,图片)   C#导出Word,Excel的方法有很多,这次因为公司的业务需求,需要导出内容丰富(文字,表格,图片)的报告,以前的方法不好使,所以寻找新的导出方法, ...

  3. 一、SOAP简单对象访问协议讲解

    一.SOAP简单对象访问协议讲解 今天给大家讲讲SOAP的基本知识.下节给大家演示创建基于SOAP的Web Service. 更多SOA文章请查看我的个人博客. 首先,让我来简单一下入门SOAP所需的 ...

  4. D13

    =-=由于本人有极度强迫症啊.. 然后这个博客又不能改顺序.. 前几天由于台风是在宾馆写题..简直各种没有效率..所以今天就先草草写下题解,之后再完善吧 T1:字符串处理 c++的话,解决读空格继续读 ...

  5. WPF中StackPanel的使用方法

    StackPanel 1.StackPanel:释义为是最简单的控制面板,它把其中的UI元素按横向或纵向堆积排列. 2.常用属性:width:获取或设置元素的宽度.Orientation:用于控制面板 ...

  6. WPF刷新界面之坎坷路

    WPF刷新界面之坎坷路 项目需要一个硬件检测功能,需要用到界面刷新,刚开始想用个定时器,对检测过的硬设定时添加后刷新界面. 但是很遗憾,定时器并不能进行刷新.后台检测List数据里面已经添加了很多了很 ...

  7. spring添加通知配置

    在项目里添加的spring配置文件 <bean id="beforeMethod" class="com.wxw.core.common.AdviceBefore& ...

  8. [置顶] (游戏编程-04)JAVA版雷电(奇迹冬瓜)

    注:运行环境必须要JDK 先为大家送上游戏截图 接着在最后有代码下载的链接地址 1.游戏开始动画和主界面 关卡与boss 结束画面 代码下载地址 点击打开链接

  9. linux下编译运行驱动

    linux下编译运行驱动 嵌入式linux下设备驱动的运行和linux x86 pc下运行设备驱动是类似的,由于手头没有嵌入式linux设备,先在vmware上的linux上学习驱动开发. 按照如下方 ...

  10. android jni ndk 视频分享

    链接如下:http://download.csdn.net/detail/jltxgcy/5667327.