编写一个字符串匹配程序,如果能匹配到,输出开始的下标
时间: 2024-09-07 21:05:30 浏览: 37
C语言基础-C语言编程基础之Leetcode编程题解之第28题找出字符串中第一个匹配项的下标.zip
编写一个字符串匹配程序,其核心功能是检查一个特定的子串(模式串)是否出现在另一个较长的字符串(文本串)中,并且如果存在匹配,输出模式串在文本串中开始的下标位置。这里提供一个简单的字符串匹配算法示例,即暴力匹配算法。
暴力匹配算法的基本思想是:从文本串的第一个字符开始,与模式串的第一个字符进行比较,如果相同则继续比较下一个字符;如果在任何时候发现不匹配的情况,则文本串的匹配位置向右移动一位,模式串重新与文本串当前位置对齐,再次进行比较。
以下是一个简单的暴力字符串匹配算法的伪代码实现:
```
function StringMatch(text, pattern):
n = length(text)
m = length(pattern)
for i from 0 to n - m:
j = 0
while j < m and text[i + j] == pattern[j]:
j += 1
if j == m:
return i // 匹配成功,返回模式串在文本串中的开始下标
return -1 // 匹配失败,返回-1
```
在实际编程语言中,你需要根据该语言的语法规则实现上述逻辑。例如,在Python中,你可以这样实现:
```python
def string_match(text, pattern):
n = len(text)
m = len(pattern)
for i in range(n - m + 1):
j = 0
while j < m and text[i + j] == pattern[j]:
j += 1
if j == m:
return i # 匹配成功,返回模式串在文本串中的开始下标
return -1 # 匹配失败,返回-1
# 示例使用
text = "ABCABAA"
pattern = "CAB"
result = string_match(text, pattern)
if result != -1:
print(f"模式串 '{pattern}' 在文本串 '{text}' 的开始下标为: {result}")
else:
print(f"在文本串 '{text}' 中未找到模式串 '{pattern}' 的匹配。")
```
在使用这个程序时,你可以将`text`和`pattern`变量替换为实际的字符串,运行程序后,如果模式串在文本串中存在匹配,则会输出模式串的开始下标,否则会输出未找到匹配的信息。
阅读全文