• 面试题 把字符串中的\t转换为4 的空格


                从C++奋斗乐园上看到的题目,也想试着编程来学习。网址:http://www.cppleyuan.com/viewthread.php?tid=8055&extra=page%3D1

                首先,说一下自己的体会,这题有不同的解决方法,让我更好的对C++字符串的理解,以及指针的了解和内存分配。

                 下面是源码,已通过经过测试:       

                  #include <iostream>

                  #include <string>

                  #include <cstdlib>

                   using namespace std;

                  char * convert(char *strDest,char *strStr,int length)

               {  

                  int i=0;  

                  char *cp=strDest;  //这一步也特别重要,用一个指针来指向strDest,不然如果用strDest参与运算,因为每赋值一次strdest都指向了下一个位置。最后strDest指向的就不是字符串的首地址了。

                   while(((*strStr)!='\0')&&(i<length))

                   {   if(*strStr=='\t')  

                       {   

                             for(int j=0;j<4;j++)  

                             {     *cp=' ';    

                                     cp++;

                              }  

                        }  

                         else   

                        {   

                              *cp++=*strStr;  

                         }      

                        i++;   

                       strStr++;

                  }

                 *cp='\0';

                   return strDest;  

              }

             int main()

                 {  

                    char *strSour="he\tllo";  

                    char *strDest;   

                    strDest=(char *)malloc(sizeof(char)*100); //这一步特别重要因为前面仅仅定义一个指针变量,但并没有分配存储空间。

                     int length=strlen(strSour);  

                     cout<<convert(strDest,strSour,length)<<endl;  

                     return 0;

                  }

              

  • 相关阅读:
    Solr7使用Oracle数据源导入+中文分词
    自动签发https证书工具 cert manager
    Docker容器服务发现方案
    Registrator中文文档
    C#重试公用类
    sqlserver 2017 docker安装(启动代理)
    【转】如何将MySQL数据目录更改为CentOS 7上的新位置
    solr搜索引擎配置使用mongodb作为数据源
    [转]Docker容器可视化监控中心搭建
    AOP缓存实现
  • 原文地址:https://www.cnblogs.com/xshang/p/2868729.html
Copyright © 2020-2023  润新知