zoukankan      html  css  js  c++  java
  • 面试题

    (1)统计字符串中出现的子字符串数量

    #include "stdafx.h"
    void findcount(char* s1,char *s2);
    void findcount(char* s1,char *s2)
    {
       char * str1 = s1;
       char * str2 = s2;
       int count=0;
       while (*str1!='\0')
       {
          if (*str1==*str2&&*str1!='\0'&&*str2!='\0')
          {
        str1++;
        str2++;
          }
       else
       {
             str2= s2;
       str1++;
       }
       if (*str2=='\0')
       {
         count++;
         str2= s2;
        
       }
     
       }

    }
    int _tmain(int argc, _TCHAR* argv[])
    {
     char *str1 = "abdbcfbcrbcdgrbcddbcdfsabcdcc";
     char *str2 ="bcd";
        findcount(str1,str2);
     return 0;
    }

    (2)实现strcpy函数
    char * strcpy(char *strDest,const char *strSrc)

     assert((strDest!=NULL) && (strSrc !=NULL));
     char * strDestCopy=strDest;  
     //while ((*strDest++=*strSrc++)!='\0');//可以替换成下面的循环
     while(*strSrc!='\0')
     {
      *strDest=*strSrc;
      strDest++;
      strSrc++;
     }
     *strDest=*strSrc;
     return strDestCopy;

    }
    int _tmain(int argc, _TCHAR* argv[])
    {
     
     char a[20]="you are a student",c[]="i am teacher!";
     strcpy(a,c);
     return 0;
    }

    (3):Strcat原型

    char *strcat(char *strDest, const char *strScr) //将源字符串加const,表明其为输入参数
    {
     char * address = strDest; //该语句若放在assert之后,编译出错
     assert((strDest != NULL) && (strScr != NULL)); //对源地址和目的地址加非0断言
     while(*strDest!='\0') //是while(*strDest!=’\0’)的简化形式
     { //若使用while(*strDest++),则会出错,因为++是不受循环
      strDest++; //约束的。所以要在循环体内++;因为要是*strDest最后指
     } //向该字符串的结束标志’\0’。
     while((*strDest++ = *strScr++)!='\0') //是while((*strDest++ = *strScr++)!=’\0’)的简化形式
     {
      NULL; //该循环条件内可以用++,
     } //此处可以加语句*strDest=’\0’;
     return address; //为了实现链式操作,将目的地址返回
    }
    int _tmain(int argc, _TCHAR* argv[])
    {
     char a[40]="you are a student",c[]="i am teacher!";
     strcat(a,c);
     return 0;
    }

    (4)memcpy

    //注意类型都是void*

    void *memcpy(void *dest, const void *src, size_t count)
    {
     char *tmp = dest;
     const char *s = src;
     while (count--)
      *tmp++ = *s++;
     return dest;
    }

  • 相关阅读:
    lumen简单使用exel组件
    VIM 批量注释的两种方法 (转)
    linux时间校准 设置时间为上海时区
    lumen发送邮件配置
    centos 下安装redis 通过shell脚本
    shell 脚本接收参数
    linux设置系统变量
    linux通配符
    UCCI协议[转]
    一种编程范式:对拍编程
  • 原文地址:https://www.cnblogs.com/lzjsky/p/1936312.html
Copyright © 2011-2022 走看看