zoukankan      html  css  js  c++  java
  • 现场编写类似strstr/strcpy函数

    标签(空格分隔): 数据结构与算法 CC++


    一、字符串查找strstr()

    题目描述
    给定一个字符串A,要求在A中查找一个子串B。
    如A="ABCDF",要你在A中查找子串B=“CD”。
    在字符串中查找指定字符串的第一次出现的位置,不能找到则返回-1

    int Strstr( const char *s,  const char *sub)
    {
    	if (s == NULL || sub == NULL)
    		return -1;
    	
    	size_t lenstr = strlen(s);
    	size_t lensub = strlen(sub);
    
    	if (lenstr < lensub)
    		return -1;
    	int len = lenstr - lensub;
    	int i, j;
    	for (i = 0; i <= len; i++)
    	{
    		for (j = 0; j < lensub; j++)
    		{
    			if (s[i + j] != sub[j])
    				break;
    		}
    		if (j == lensub)
    			return i + 1;
    	}
    	return -1;
    }
    

    二、字符串拷贝strcpy()

    满分函数如下:

    char* Strcpy(char* strDest, const char *str)
    {
    	if (strDest == str) { return strDest; }//考虑到源目所指区域有重叠的情况
    	assert((strDest != NULL) && (str != NULL));//对源地址和目的地址加非0断言
    	char *address = strDest;//为了实现链式操作,将目的地址返回
    	while ((*strDest++ = *str++) != '');
    	return address;
    }
    
  • 相关阅读:
    saltstack状态判断unless与onlyif
    saltstack搭建LAMP架构案例
    saltstack编写自定义模块
    saltstack数据系统Pillar
    saltstack数据系统Grains
    自动重连套路
    golang切片
    开源库evio源码学习
    计算机操作系统
    常用数据结构的时间复杂度
  • 原文地址:https://www.cnblogs.com/Blackmanba-xzl/p/5414068.html
Copyright © 2011-2022 走看看