zoukankan      html  css  js  c++  java
  • 面试题 把字符串中的\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;

                  }

              

  • 相关阅读:
    团队选题报告
    结对编程作业服务器端总结
    结对编程作业服务器端系统设计、玩法和接口简要
    第一次团队展示
    第一次个人编程作业技术助教总结
    第一次个人编程作业输入输出格式及注意事项
    第一次博客作业
    课程总结
    团队作业-个人总结
    团队作业总结
  • 原文地址:https://www.cnblogs.com/xshang/p/2868729.html
Copyright © 2011-2022 走看看