Return a pointer from a function : function return « Function « C++ Tutorial






#include <iostream> 
using namespace std; 
 
char *get_substr(char *sub, char *str); 
 
int main() 
{ 
  char *substr; 
 
  substr = get_substr("three", "one two three four"); 
 
  cout << "substring found: " << substr; 
 
  return 0; 
} 
 
// Return pointer to substring or null if not found. 
char *get_substr(char *sub, char *str) 
{ 
  int t; 
  char *p, *p2, *start; 
 
  for(t=0; str[t]; t++) { 
    p = &str[t];
    start = p;  
    p2 = sub;     
    while(*p2 && *p2==*p) { // check for substring 
      p++; 
      p2++; 
    }  
 
    /* If at end of p2 (i.e., substring), then a match has been found. */ 
    if(!*p2) 
      return start; // return pointer to beginning of substring 
  } 
  return 0;
}
/*
Quote from: C++: A Beginner's Guide, Second Edition 

# Publisher: McGraw-Hill Osborne Media; 2 edition (December 3, 2003)
# Language: English
# ISBN-10: 0072232153
# ISBN-13: 978-0072232158
*/
substring found: three four








7.8.function return
7.8.1.Return void from a function
7.8.2.void function with return statement
7.8.3.Return a value from a function
7.8.4.Return a double value from a function
7.8.5.Return a pointer from a function
7.8.6.Multiple return statements in a function
7.8.7.Returning multiple values from a function using pointer
7.8.8.More than one returning value
7.8.9.Returning a reference
7.8.10.Return class instance from a function