c_cpp 在C语言中,返回指向子字符串中字符串开头的指针。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 在C语言中,返回指向子字符串中字符串开头的指针。相关的知识,希望对你有一定的参考价值。

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>


// Finds the pointer to a substring within a string.
static const char* find_substr(const char* string, const char* substring) {
  int on = 0;
  const char* index = NULL;
  const char* traverse = substring; // resettable
  while(*string)
  {
    if(on)
    {
      if(!*traverse) return index;
      else if(*traverse == *string)
      {
        traverse++;
      }
      else
      {
        traverse = substring;
        index = NULL;
        on = 0;
      }
    }
    else
    {
      if(*string == *substring)
      {
        on = 1;
        index = string;
        traverse++;
      }
    }
    string++;
  }
  if(!*traverse) return index;
  else return NULL;
}

int main(void) {
  const char * result = find_substr("Hello Apple!", "Apple!f");
  if(result == NULL) puts("NULL");
  else puts(result);
  return 0;
}

以上是关于c_cpp 在C语言中,返回指向子字符串中字符串开头的指针。的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp 在字符串中查找子字符串

C语言:输入一行字符,统计其中有多少个单词,单词之间用空格分隔开

如何将指针传递给字符串,指向子字符串的指针,并返回其他内容?

c_cpp 在一个长字符串中,找到出现不止一次的最长子字符串,也称为最长的重复子字符串。

C 语言二级指针案例 ( 字符串切割 | 返回 自定义二级指针 作为结果 | 每个 一级指针 指向不同大小内存 | 精准分配每个 一级指针 指向的内存大小 )

C语言strchr()函数(字符串中查找子字符)