gpt4 book ai didi

c - 需要解释 findString() 函数返回的结果

转载 作者:行者123 更新时间:2023-11-30 18:50:34 25 4
gpt4 key购买 nike

为什么以下 findString() 函数返回给定参数的指示值?

findString("text", "") 返回 0。

findString("", "text") 返回 -1。

findString("", "") 返回 -1。

我已经阅读了 strstr 并查看了其他问题,但就是不明白。

// find s1 inside source, return index number if found, -1 if not found    

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

int findString (const char source[], const char s[])
{
int i, j, foundit = false;

// try each character in source

for ( i = 0; source[i] != '\0' && !foundit; ++i ) {
foundit = true;

// now see if corresponding chars from s match

for ( j = 0; s[j] != '\0' && foundit; ++j )
if ( source[j + i] != s[j] || source[j + i] == '\0' )
foundit = false;

if (foundit)
return i;
}

return -1;
}

int main (void)
{
int index;

printf ("index = %i\n", findString("text", ""));
printf ("index = %i\n", findString("", "text"));
printf ("index = %i\n", findString("", ""));

return 0;
}

最佳答案

  • 第一次调用返回 0,因为可以在索引为零的任何字符串中找到空字符串(除非代码中存在错误,请参见下文)
  • 第二次调用返回-1,因为在空字符串中找不到非空字符串
  • 第三次调用返回 -1,因为您的代码中存在错误:当未进入外循环时(即 source 字符串为空),您应该添加一个特殊情况,当搜索字符串 s 也为空时返回 0

关于c - 需要解释 findString() 函数返回的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39862319/

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