题目描述 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. socket串口通信

    SocketServer: #include <arpa/inet.h> #include <stdio.h> #include <stdlib.h> #inclu ...

  2. MVC与EasyUI结合增删改查

    构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(9)-MVC与EasyUI结合增删改查   在第八讲中,我们已经做到了怎么样分页.这一讲主要讲增删改查.第六讲的 ...

  3. SOCKET网络编程5

    SOCKET网络编程快速上手(二)——细节问题(5)(完结篇) 6.Connect的使用方式 前面提到,connect发生EINTR错误时,是不能重新启动的.那怎么办呢,是关闭套接字还是直接退出进程呢 ...

  4. 什么时候用spring

    论公司spring的滥用   这个公司每个项目用不同的一套开发框架,实在忍不住拿一个出来说说事.

  5. “MVC+Nhibernate+Jquery-EasyUI” 信息发布系统 第六篇(图片新闻的添加以及带分页的静态页的生成)

    “MVC+Nhibernate+Jquery-EasyUI” 信息发布系统 第六篇(图片新闻的添加以及带分页的静态页的生成) 一.这篇文章主要是要实现:图片新闻的添加,无刷新图片的上传,以及添加新闻静 ...

  6. CSS:CSS学习总结

    CSS:CSS学习总结 背景 CSS是一种声明式的语言,学好CSS的难度甚至大于学好一门服务器语言(我个人的感觉),这周在学习CSS,就记录一下学习经验. 1.规则声明顺序 因为CSS的样式具备层叠性 ...

  7. android 工程里缺少 R.java 文件原因和解决方法

    作为新手,学习android 的时候难免要导入一些示例,目的为了更加了解android各种API用法,顺便也可以学习下别人代码的写法. 可是导入android源码后,基本都有错误,R.java也不会自 ...

  8. Kendo UI开发教程(7): Kendo UI 模板概述

    Kendo UI 框架提供了一个易用,高性能的JavaScript模板引擎.通过模板可以创建一个HTML片段然后可以和JavaScript数据合并成最终的HTML元素. Kendo 模板侧重于UI显示 ...

  9. Android Phone和Pad UA区别

    很多Android开发者或者网站端都可能会困扰关于如何区分Android phone和Android Pad的ua.确实这个问题很困难,我也曾被困扰了一段时间,后来在Stackoverflow中发现了 ...

  10. ROC与AUC

    一.ROC曲线 1.ROC曲线:接收者操作特征(receiveroperating characteristic),ROC曲线上每个点反映着对同一信号刺激的感受性. 横轴:负正类率(false pos ...