美文网首页
c/c++ 面试题

c/c++ 面试题

作者: 鼓励自己前进 | 来源:发表于2018-11-08 17:23 被阅读0次

1 string 

https://www.jianshu.com/p/cf2149034ae3 模拟实现 string类

https://www.cnblogs.com/Y1Focus/p/6707121.html

https://www.jianshu.com/p/f590af69df6d

 

2、替换空格:

/*length 为字符数组string的总的容量*/

void Replace(char string[], int length){

   int originalLength = 0;    /*originalLength为字符串string的实际长度*/

    int numberOfBlank = 0;

    int i = 0;

    while(string[i] != '\0') {

        ++ originalLength;

        if(string[i] == ' '){

            ++ numberOfBlank;

        }

        ++ i;

    }

    /*newLength为把空格替换成‘%20’后的长度*/

    int newLength = originalLength + numberOfBlank * 2;

    if (newLength > length) {

        return ;

    }

    int indexOforiginal = originalLength;

    int indexOfNew = newLength;

    while(indexOforiginal >= 0 && indexOfNew > indexOforiginal) {

        if(string[indexOforiginal] == ' ') {

            string[indexOfNew --] = '0';

            string[indexOfNew --] = '2';

            string[indexOfNew --] = '%';

        } else {

            string[indexOfNew --] = string[indexOforiginal];

        }

        -- indexOforiginal;

    }

}

3、字符串的排列:输入一个字符串,打印出该字符串中字符的所有排列。例如:输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab,cba

int swap_str(char *str1,char *str2){

    char temp=*str1;

    *str1=*str2;

    *str2=temp;

}

/*这个函数是输出排列的函数*/

void permutation(char *str1,char *begin){

    if(*begin=='\0')//当递归到末尾的时候,输出该排列

        cout<<str1<<endl;

    else{

        for(char *ch=begin;*ch!='\0';*ch++){//从子字符串进行递归

            swap_str(ch,begin);

            permutation(str1,begin+1);

            swap_str(ch,begin);

        }

    }

}

4、第一个只出现一次的字符:在字符串中找出第一个只出现一次的字符。如输入“abaccdeff”则输出b

10. 不调用C/C++ 的字符串库函数,编写strcpy

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

        {

                if ((strDest==NULL)||strSrc==NULL))                   

                  return NULL;   

                char * strDestCopy=strDest;

                while ((*strDest++=*strSrc++)!='\0');

                *strDest = '\0';

                return strDestCopy;

        }

相关文章

  • C++基础

    c++面试题

  • Java基础知识与面试题整理

    # Java基础知识与面试题整理(一) @[toc] ---- ---- ## 垃圾回收机制 传统C/C++等编程...

  • 无题

    找工作时的四个知识块:c/c++、系统网络编程、数据库和qt。 c/c++的知识点浓缩在面试题库中了,可以好好看看...

  • OC 对象的本质(一)

    先来看一个面试题 我们来用clang编译器转起c++ 看看. 打开C++文件发现其生成的对象转成如下图所示 NSO...

  • sizeof与字节对齐

    参考 【面试题】sizeof引发的血案编译器与字节对齐c 语言字节对齐问题详解C/C++内存对齐内存存取粒度C和C...

  • iOS面试题

    最近在找工作,把遇到的面试题累计一下 1. objective-c与C++的区别 1、Objective C基本上...

  • 面试准备

    最近发现了一个博客,写的还蛮好的,东西很全,主要是关于C++后台开发的各种知识 C++后台开发面试题 每日算法 设...

  • 知识点(三)

    参考:图像处理职位面试题(图像处理+c++)https://blog.csdn.net/u014114990/ar...

  • 剑指offer学习笔记:整体结构

    67道经典面试题+相关扩展 c++版 从面试题6开始附leetcode或者牛客网连接 哎,简书怎么上传xmind呀

  • c/c++ 面试题

    1 string https://www.jianshu.com/p/cf2149034ae3模拟实现 strin...

网友评论

      本文标题:c/c++ 面试题

      本文链接:https://www.haomeiwen.com/subject/ymnwxqtx.html