char* p =strstr(str1,str2);

  1. 从str1的每一个位置开始,依次和str2中的每一个字符进行比较,如果在到str2字符串结尾之前,出现了不等的情况,则结果本轮比较,继续进行下一轮比较,否则查找子串str2成成,返回str1中本轮开始对比的位置。

使用自实现的mystrstr运行上面的测试程序,结果如下:
至此,我们成功自实现了一个strstr函数。

 本文版权归传智播客学院所有,欢迎转载,转载请注明作者出处。谢谢!
作者:传智播客C/C++培训学院

  • 输入两个字符串 str1、str2,统计字符串 str2 出现在 str1 中的次数。

    while(s1.indexOf(s2,i)!=-1) {//从i的索引处开始查找,可返回某个指定的字符串值在字符串中首次出现的索引位置。若没有则返回-1,有则返回索引值
  • /** * 基本思路:我的算法思路更接近我们正常的思路是... * 我们逐个遍历每个字符,先找到str2中的一个字符在str1中存在我们将其赋值给str(代表公共子串),接着我们一个个遍历字符,如果下一个字符 * 将下一个字符

    * 本题提供了两种思路:思路和代码如下两种方法都能通过牛客网(动态规划的想法是真的牛逼) * 一、基本思路:我的算法思路更接近我们正常的思路是: * ①我们首先要做的是找到str1和str2哪个串更长,把长的存入str1中短的存入str2中 * (这样做的原因是:遍历短的字符串来找最短重复子串会更加省时间) * ②我们开始遍历短的字符串,从中找到一个最长的子串str1中也存在 * 我们逐个遍历每个字符,先找到str2中的一个字符在str1中存在我们将其赋值给str(代表公共子串),接着我们一个个遍历字符,如果下一个字符 * 将下一个字符和原先我们找到的重复子串部分连接起来,如果仍然是公共子串则将其加入重复子串str中,如果加入后 * 不在是公共子串,我们判断加入的那个字符本身是否可以在str1中找到,如果找到我们判断下一个字符,如果可以找到又分为 * 将str的第一个字符删除加入该字符知否仍然是公共子串,如果是则删除str的第一个加入该字符,如果找不到则接着从下一个字符判断。 * 每次判断我们都将结果与result比较,如果长则将其存入result(保证result中存的是最长的) *一样的现在有str1和str2两个字符串 *我们的做法是定义一个二维数组,这个数组的用于存储str1中的第i个元素与str2中的第j和元素连续相同的个数 *我们是这样做的:声明一个空间大小为array[str1.length() + 1][str2.length + 1]的数组(多一行的原因是方便动态规划叠加,初始默认为空的都不同) *赋值完成后都记录最大值,方便我们在遍历完成后找出最大连续相同的个数和位置,然后引用。
  • 例题:输入两个字符串str1和str2,用函数实现两个字符串的比较,当两串相等时返回0,当两串不相等时,则输出两串中第个不相同字符的ASCII码值之差,若str1>str2则返回正数,若str1<str2则返回负值。

    例题:输入两个字符串str1和str2,用函数实现两个字符串的比较,当两串相等时返回0,当两串不相等时,则输出两串中第一个不相同字符的ASCII码值之差,若str1>str2则返回正数,若str1<str2则返回负值。

  • 编程题:有两个字符串str1和str2,写个函数实现在str1查找str2的初始位置,要求不区分大小写 思路:1:首先判断两个字符串的大小,作初步比较

  • 输入两个字符串str和cut。cut由若干个字符构成,其中每个字符均可作为个分隔字符对str进行分隔。 注意:strcut中均可以包含空格。如果cut中含有空格,则空格也作为str的分隔字符。 cut中字符不能用减号(系统...

  • 、可以用三种方式解决子串问题:函数strstr、指针、子串出现的首个位置。 二、使用函数strstr判断str1中是否包含str2 三、利用指针来判断是否为子 四、不用函数指针,返回子串出现的首位置 、...

  • java内,str1==str2为true的条件是,str1、str2必须是同一地址的字符串,也就是说他们是同身不同名成立,而如果地址不一样,即便字符串长得一模一样,str1==str2还是不会成立的,此时str1.equase(str2)会成立。...

  • 两个字符串str1和str2,它们的长度都不超过100个字符。请编程实现在str1查找str2的初始位置。 【输入形式】 有两行输入,第输入字串str1,第二行输入字串str2 【输出形式】 个整数。若该整数为正整数,则...

  • 设计一个算法,在字符串str查找字符串substr第出现位置。 c++ 小练习。

  • 采纳率:47%等级:10已帮助:419人/* 编程实现从键盘输入一个字符ch和一个字符串str,利用字符指针实现删除字符串str中和字符ch相等所有字符,然后输出字符串str *//* 假定输入行,第行为待删除的...

  • 1、最长公共子串:子串是串的一个连续的部分,在原字符串位置是连续的 2、最长公共子序:不改变序列的顺序,从序列中去掉任意的元素而获得新的序列,也就是说子序在原字符串位置可以不连续。 递推方程: 步骤...

  • str1、str2两个有序字符串(其中字符按ASCII码从小到大排序),将str2合并到字符串str1中,要求合并后的字符串仍是有序的,允许字符重复。main函数中...

  • 编写一个程序,先输入一个字符串str(长度不超过20),再输入单独的一个字符ch,然后程序会把字符串str当中出现的所有的ch字符都删掉,从而得到一个新的字符串str2,然后把这字符串打印出来。  输入格式:输入有...

  • 个函数比较两个字符串str1和str2的大小,若相等返回0,若str1大于str2返回1,若str1小于str2返回-1,不调用C++/C的字符串的字符库函数,请编写函数strcmp,函数定义为:intstrcmp(const

strstr(a,b)的用法是不是在a数组内查看是否有b数组。。。没有则输出NULL??路过的朋友帮帮忙,还有是否有注意的地方。。。。字符串处理能力太差了。。。唉... strstr(a, b)的用法是不是在a数组内查看是否有b数组。。。没有则输出NULL
??路过的朋友帮帮忙,还有是否有注意的地方。。。。字符串处理能力太差了。。。唉


推荐于 · 专注娱乐 专注娱乐 专注娱乐

a字符串里 查看是否有b字符串,

有则 从首次发现b字符串处 返回 a字符串。

14年本科毕业于河南理工大学,至今就读于河南理工大学攻读硕士学位,从事编程学习已有5年。


 函数用于判断字符串str2是否是str1的子串。如果是,则该函数返回str2在str1中首次出现的地址;否则,返回NULL。

本回答由苏州名伽峰汇文化传播有限公司_提供


推荐于 · TA获得超过4.2万个赞

a字符串里 查看是否有b字符串,
有则 从首次发现b字符串处 返回 a字符串。

下载百度知道APP,抢鲜体验

使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。

我要回帖

更多关于 str2 的文章

 

随机推荐