gpt4 book ai didi

c - 使用函数在字符串中查找字符串

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:46:30 25 4
gpt4 key购买 nike

我正在尝试编写一个函数 (findString) 来查明字符串是否存在于另一个字符串中。对于我的函数,第一个参数是搜索到的字符串,第二个是试图找到的字符串。

如果找到字符串,则返回源字符串的位置。

我写的代码如下:

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#include <string.h>

int findstring(char source[], char lookup[]){
int lensource, lenlookup;
lensource= strlen(source);
lenlookup = strlen(lookup);
int i;int j;

for(i=0; i>=lensource; ++i)
for (j=0; j>=lenlookup; ++j)
if (source[i]==lookup[j])
return i;

}

int main(){

findstring("Heyman","ey");
}

如果函数正常工作,则应返回索引 2。

但是,当我运行它时,没有返回任何内容。我想问题在于我使用 for 循环或 if 语句的方法有问题。

我在不使用 strstr 的情况下执行此操作

最佳答案

首先,有一个函数可以执行此操作,称为 strstr

其次,你的循环写错了。应该是:

for(i=0; i < lensource - lenlookup + 1; ++i) {
for (j=0; j<lenlookup; ++j)
if (source[i + j]!=lookup[j])
break;
if (j == lenlookup) return i + 1; // edit: had error
// note that return i feels more right, but
// op's spec seems to want i + 1
}
return -1; // no spec on return value for failure, but -1 seems reasonable

编辑:有错别字。

关于c - 使用函数在字符串中查找字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20717281/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com