编写判断子串的函数

题目:编写判断子串的函数

编写一个函数:
int Strstr(char s1[],char s2[]) ;
如果s2不是s1的字串,返回-1
如果s2是s1的子串,返回其在s1中第一次出现的位置
空串是任何串的子串,且出现位置为0

一、创建字符串的方式:

1.char* str = “abcd”;
2.char str[] = { “abcd” };
3.char str[] = {‘a’,’b’,’c’,’d’,,’\0’};

二、代码

我还不是很理解,做个笔记:

#include <iostream> 
#include <cstdio>
#include <cmath> 
using namespace std;
 int Strstr(char s1[],char s2[]);
int main(){
    
    
	char s1[]="qwerty";
    char s2[]="wer";
    int a =Strstr(s1,s2);
    printf("%d",a);
    return 0;
}
 int Strstr(char s1[],char s2[]){
    
    
//    	判断s2是否是空字符串 
    	if(s2[0]==0){
    
    
    		return 0;
		}
		for(int i=0;s1[i];++i) {
    
    
//	    这里的s1[i]只有最后一个'\0'才为0,其他都不为0
        int k=i,j=0;
        for(;s2[j];++j,++k){
    
    
        	if(s1[k]!=s2[j]){
    
    
        		break;
			}
		}
		if(s2[j]==0){
    
    
			return i;
		}
		 
		}
		return -1;
	}
	



猜你喜欢

转载自blog.csdn.net/qq_45960449/article/details/122776057
今日推荐