写一个函数传两个参数,子串在字符串中
时间: 2023-05-23 21:05:12 浏览: 61
的位置。(Python实现)
A:
```
def find_substring(s, sub):
"""
在字符串s中查找子串sub的位置,返回第一个匹配的位置,若无匹配返回-1
"""
if not s or not sub or len(sub) > len(s):
# 如果字符串或子串为空,或子串长度大于字符串长度,则无法匹配
return -1
for i in range(len(s) - len(sub) + 1):
# 遍历字符串s的每个可能的子串,判断是否与子串sub匹配
if s[i:i+len(sub)] == sub:
return i
return -1
```
其中,`s`是字符串,`sub`是子串,函数返回子串在字符串中的第一个位置,若无匹配则返回-1。如果字符串或子串为空,或子串长度大于字符串长度,则无法匹配。
函数中使用了一个循环,遍历字符串`s`的每个可能的子串,判断是否与子串`sub`匹配。若匹配则直接返回该子串在`s`中的位置。如果遍历完所有子串都没有匹配,则说明子串不在字符串中,返回-1。
相关问题
c++写一个函数返回两个字符串中相同的字符串
以下是一个Python实现的示例代码:
```python
def find_common_str(str1, str2):
common_str = ""
for i in range(len(str1)):
for j in range(len(str2)):
if str1[i:].startswith(str2[j:]):
if len(str2[j:]) > len(common_str):
common_str = str2[j:]
return common_str
```
该函数接受两个字符串作为参数,然后在这两个字符串中查找相同的字符串。在这个函数中,我们使用了两个循环,分别遍历了两个字符串的所有子串,并且使用 `startswith()` 方法检查是否有相同的子串。如果找到了一个相同的子串,我们就将其存储在 `common_str` 变量中。最后,函数返回的是找到的最长的相同字符串。
输入一个字符串和子串,统计子串在该字符中出现次数
以下是 Python 代码实现:
```python
def count_substring(string, sub):
count = 0
start = 0
while True:
start = string.find(sub, start) # 从 start 开始查找子串 sub
if start == -1: # 若没有找到,则退出 while 循环
break
count += 1
start += 1 # 从下一个字符开始继续查找
return count
```
这个函数接受两个字符串作为参数:`string` 表示原始的字符串,`sub` 表示要查找的子串。
函数中定义了一个 `count` 变量来记录子串出现的次数,初始值为 0。另外,还定义了一个 `start` 变量来记录查找的起始位置,初始值为 0。
接下来进入一个 while 循环。在循环中,我们使用 `string.find(sub, start)` 方法来在 `string` 中查找子串 `sub`,其中 `start` 参数表示查找的起始位置。如果没有找到子串,`string.find()` 方法会返回 -1,此时退出 while 循环。如果找到了子串,那么我们就将 `count` 加一,并将 `start` 设置为下一个字符的位置,即 `start += 1`。
最后返回 `count` 即可。