基于visual Studio2013解决C语言竞赛题之1013字符串查找
题目
解决代码及点评
/*
功能:编写函数IND,让它判断一个字符串是否为另一个字符串的子串的功能,若是则返回第一次出现的起始位置,否则返回0 时间:13:55 2013/10/24
*/ #include<stdio.h>
#include<stdlib.h>
#include<string.h> void getChar(char *); //键盘获取字符串函数
int IND(char *,int,char *,int); //主功能 void main()
{
char a[80] = {0};
char b[80] = {0}; printf("a[] = ");
getChar(a);
printf("b[] = ");
getChar(b); int flag=0; //标识符判断b是否为a的子串
flag = IND(a, strlen(a), b, strlen(b)); if (flag != -1) //判断是否
{
printf("the b[] in the a[] started from a[%d].\n", flag);
}
else
printf("No");
system("pause");
} int IND(char a[],int b1,char b[],int b2) //b1,b2f分别为a、b的有效长度
{
if (b1 < b2) //如果a的长度小于b的长度这否
{
return -1;
}
else
{
int pos = 0; //储存子串的首地址,初始化为0
for (char *pa = a; pa < pa+b1-b2;pa++)
{
if (*pa == b[0])
{
for (char *pb = b,i=0; *pb != '\0';i++, *pb++)
{
if (*pb == *(pa + i)) //判断是否为子串
{
if (i+1 == b2 - 1) //i的位置达到b的尾端且相等,则结论成立
{
return pos;
}
else continue;
}
else
{
break;
}
}
}
pos++; //首地址自增
}
return -1; //没有符合条件的则返回-1
}
} void getChar(char a[])
{
char *p = a;
do
{
*p = getchar();
if (*p == '\n')break;
p++;
} while (1);
}
代码编译以及运行
由于资源上传太多,资源频道经常被锁定无法上传资源,同学们可以打开VS2013自己创建工程,步骤如下:
1)新建工程
2)选择工程
3)创建完工程如下图:
4)增加文件,右键点击项目
5)在弹出菜单里做以下选择
6)添加文件
7)拷贝代码与运行
程序运行结果
基于visual Studio2013解决C语言竞赛题之1013字符串查找的更多相关文章
- 基于visual Studio2013解决C语言竞赛题之0708字符串查找
题目
- 基于visual Studio2013解决C语言竞赛题之0902文件查找
题目
- 基于visual Studio2013解决C语言竞赛题之0704字符串长度
题目
- 基于visual Studio2013解决C语言竞赛题之1042字符串比较
题目 解决代码及点评 /********************************************************************** ...
- 基于visual Studio2013解决C语言竞赛题之1069链表查找删除
题目 解决代码及点评 /* 功能:建立一个链表,每个结点包括:学号.姓名.性别.年龄.输入一个年龄,如果链表中的结点所包含的年龄等于此年龄, 将此结点删除,输出最后的链表. 时 ...
- 基于visual Studio2013解决C语言竞赛题之0401阶乘
题目 解决代码及点评 这个是一道经典的教科书题目,基本上每本基础的c/c++语言教科书都会有这个题目 用来演示循环语句 #include <stdio.h> #include ...
- 基于visual Studio2013解决C语言竞赛题之0205位数求和
题目
- 基于visual Studio2013解决C语言竞赛题之0201温度转换
题目 解决代码及点评 #include <stdio.h> #include <stdlib.h> void main() { float f; float c; float ...
- 基于visual Studio2013解决C语言竞赛题之0409 100以内素数
题目 解决代码及点评 在已经知道素数是怎么判断的基础上,增加循环,可以判断出100以内的素数 /******************************************* ...
随机推荐
- [Android文档翻译]设备兼容性
原文地址:Device Compatibility Android设计于运行在多种不同类型的设备上,从手机.平板到电视.作为一名开发者,设备的涵盖范围为你的app提供了广大的潜在用户.为了让你的app ...
- 谈谈我的iOS学习及分享
iOS可以说是最近几年比较热门和高速发展一个系统,因此iOS开发也变得火热.越来越多的程序员都转向了iOS开发,每个人的学习方法都不同,分享下我的学习经历和见解吧.我之前学习过C++和Qt,Java也 ...
- CoreAnimation (CALayer 动画)
CoreAnimation基本介绍: CoreAnimation动画位于iOS框架的Media层 CoreAnimation动画实现需要添加QuartzCore.Framework CoreAnima ...
- linux grep详解
Table of Contents 1. grep简介 2. grep正则表达式元字符集(基本集) 3. 用于egrep和 grep -E的元字符扩展集 4. POSIX字符类 5. Grep命令选项 ...
- Ubuntu 13.04 安装使用clang
其实很简单,就是用命令即可: apt-get install clang-3.2 clang-3.2-doc 主要说明一点,/usr/bin/c++链接原来指向g++,现在被改变了. $ ls /us ...
- 查看一个int数组里边的每个数字出现过几次
public void aa() { int[] a = { 1, 2, 3, 4, 5, 4, 3, 2, 1 }; Hashtable ht = new Hashtable(); for (int ...
- Java字节码中的方法调用
invokestatic,用于static修饰的方法.任何时候调用的时候只需要类名+方法名即可,无需new.JVM直接将其映射到方法区,执行速度极快.当该方法需要参数的时候,invokestatic会 ...
- HDU 3925 Substring 【大数相减】
题目意思是,给你提供两个数字 a 和 b a 可以不断的往上加, 直到b 为其子串 问的是 a 最小加几? 显而易见,a 的数据范围给了10 ^100非常大,直接模拟肯定不行 那么就用 b 减去 a ...
- iOS开发之计算动态cell的高度并缓存
项目中有个类似微博那样的动态cell,文字和图片的多少都不是确定的 刚开始使用autolayout,结果很多问题,最后我发现了一个框架 FDTemplateLayoutCell 写的很好,自动布局ce ...
- PHP脚本实现凯撒加(解)密
原文:PHP脚本实现凯撒加(解)密 今天在看某ctf时候遇到一题凯撒加密的题,然后看到write up里有这样一句 顿时感觉这题目有点坑啊,这要不写个脚本来跑要推到啥时候啊,于是又了本文: <? ...