• 笔试中最常见的string相关函数


    strcpy:题目:已知strcpy函数的原型是:

    char * strcpy(char * strDest,const char * strSrc);

    1.不调用库函数,实现strcpy函数。

    2.解释为什么要返回char *。

    解答:

    1.

    char *strcpy(char *strDestination, const char *strSource)
    
    {
    
        assert(strDestination && strSource);
    
        char *strD=strDestination;
    
        while ((*strDestination++=*strSource++)!='\0')
    
            NULL;
    
        return strD;
    
    }
    

      

    2.为了实现链式调用:strcpy(b,strcpy(c,a))



    Strstr:返回heyStack中第一个与needle匹配的地址
    char * mystrstr(char* heyStack,char* needle)
    {
        //assert(heyStack!=NULL&&needle!=NULL);
        int heyStack_len=strlen(heyStack);
        int needle_len=strlen(needle);
    	int i=0;
        if(needle_len>heyStack_len)
    		return NULL;
        for(;i<heyStack_len-needle_len+1;i++){
    		int j=0;
    		for(;j<needle_len;j++){
                  if(needle[j]!=heyStack[i+j])
    				  break;
    		}
    		if(j==needle_len)  return &heyStack[i];
    	}  
    	return NULL;
    }
    

      


    strcat:在目标字符串的末尾添加源字符串
    char* strcat(char* dest,const char* source)
    {
         assert(dest!=NULL&&source!=NULL);
         char* destTemp=dest;
         char* sourceTemp=source;
         while(*destTemp++!='\0');
              destTemp--;
         while((*destTemp++=*sourceTemp++)!='\0');
         return dest;
    }
    

      

    strrev:颠倒字符串
    char* strrev(char* dest )
    {
         assert(dest!=NULL);
         char* temp=dest;
         char* result=new char[strlen(dest)+1];
         char* resultTemp=result;
         while(*temp++!='\0');
         temp--;
         int count=strlen(dest);
         while(count--)
              *resultTemp++=*temp--;
          *resultTemp='\0';
          return result;
    }
    

      

  • 相关阅读:
    可视化svg深入理解viewport、viewbox、preserveaspectradio
    async generator promise异步方案实际运用
    JavaScript中面相对象OOP
    css3:神秘的弹性盒子flexbox
    JavaScript:我总结的数组API
    CSS3:过渡大全
    CSS3奇特的渐变示例
    缓存:前端页面缓存、服务器缓存(依赖SQL)MVC3
    nohup
    video和audio
  • 原文地址:https://www.cnblogs.com/cherri/p/2074915.html
Copyright © 2020-2023  润新知