有两个字符串str1和str2,写一个函数实现在str1中查找str2的初始位置。要求不区分大小写。
2014-09-25 21:58
323 查看
#include <stdio.h>
#include <string.h>
void main(int argc, char *argv[])
{
int SubStrPosition(char *str1, char *str2);
char *str1 = "are78fcbcdEgf";
char *str2 = "Re";
printf("The position is %d.\n", SubStrPosition(str1,str2));
return;
}
/* 查找str2在str1中的位置,不存在时返回-1 */
int SubStrPosition(char *str1,char *str2)
{
int istr1Len = 0;
int istr2Len = 0;
int i = 0;
int j = 0;
int iPosition = -1;
istr1Len = strlen(str1);
istr2Len = strlen(str2);
if (istr2Len > istr1Len)
{
printf("Str2 cann't be the substring of str1.\n");
return -1;
}
/* 开始寻找str2在str1中的位置,不区分大小写 */
for (i; i < istr1Len; i++)
{
for (j; j < istr2Len; j++)
{
if (!((str1[i+j] == str2[j]) || (str1[i+j] == str2[j] + 32)
|| (str1[i+j] == str2[j] - 32)))
break;
}
if (j == istr2Len)
{
iPosition = i+1;
break;
}
}
return iPosition;
}
#include <string.h>
void main(int argc, char *argv[])
{
int SubStrPosition(char *str1, char *str2);
char *str1 = "are78fcbcdEgf";
char *str2 = "Re";
printf("The position is %d.\n", SubStrPosition(str1,str2));
return;
}
/* 查找str2在str1中的位置,不存在时返回-1 */
int SubStrPosition(char *str1,char *str2)
{
int istr1Len = 0;
int istr2Len = 0;
int i = 0;
int j = 0;
int iPosition = -1;
istr1Len = strlen(str1);
istr2Len = strlen(str2);
if (istr2Len > istr1Len)
{
printf("Str2 cann't be the substring of str1.\n");
return -1;
}
/* 开始寻找str2在str1中的位置,不区分大小写 */
for (i; i < istr1Len; i++)
{
for (j; j < istr2Len; j++)
{
if (!((str1[i+j] == str2[j]) || (str1[i+j] == str2[j] + 32)
|| (str1[i+j] == str2[j] - 32)))
break;
}
if (j == istr2Len)
{
iPosition = i+1;
break;
}
}
return iPosition;
}
相关文章推荐
- 写一个函数查找每个字符的个数,区分大小写,时间复杂度要求O(n)
- 给定两个字符串str1和str2,查找str2在str1中出现的位置
- 链表的基本操作(创建,查找指定位置元素,删除指定元素,插入,倒置,去重,求集合的差,分别交换结点与交换结点值实现的冒泡排序,将两个有序链表合并成一个有序链表)c语言实现
- 有一个int型数组,每两个相邻的数之间的差值不是1就是-1.现在给定一个数,要求查找这个数在数组中的位置
- 编写一个函数,实现从一个字符串中,查找另一个字符串的位置(笔试题) 例如int func("12345", "34")返回值为2,即在2号位置找到字符串“34”。
- Objective-C - 写一个函数实现求两个数的和(要求两个加数由用户从控制台输入)
- 一个string不区分大小写查找的方法(函数)
- 写出一个函数,查找出每个字符的个数,区分大小写
- 使用boost查找区分大小写查找,查找一个字符串在另外一个字符串的位置,返回索引。
- 写一个功能函数实现从数组中找出两个值相加等于某一个值,要求时间复杂度为 n;
- 分享给大家两个不区分大小写的字符串查找函数 strstr
- 实现一个数值加法函数,返回两个数字的和。要求能进行参数验证,若参数不是数字或为空则抛出异常。
- 给你两个字符串str1,str2,找出str2在str1中的位置
- 定义一个二维数组,写函数来实现对该二维数组求最大值。(要求,用行指针为函数形参)
- 用MASM32写了一个查找替换的字串函数!ANSI及UNICODE两个版本
- 写一函数,实现两个字符串的比较,即自己写一个strcmp函数
- 题目:写一个函数,求两个整数的之和,要求在函数体内不得使用+、-、×、÷。
- 实现一个字符串查找子串的函数
- 编写一个函数,实现两个字符串的连接功能
- C++第六周任务5:解决用一个项目多个文件的方式实现,其中两个类的声明放在一个.h文件中,每个类的成员函数分别放一个文件,main()函数用一个文件。体会这样安排的优点。