zoukankan      html  css  js  c++  java
  • 单词翻转

    参考网上的代码,谁知道有问题,修改了下,貌似可以了,VS2008上试验毫无鸭梨。

    #include <iostream>
    using namespace std;
    //计算长度
    size_t str_len(char *str_source)
    {
       size_t i = 0;
       while (*str_source++ != '\0')
       {
    	   ++i;
       }
       return i;
    }
    //翻转指定位置的字符串
    char *reverse_str(char *str_source,size_t str_begin,size_t str_end)
    {
    	size_t len = str_len(str_source);
    	if(str_begin < 0 || str_end > len || str_end-str_begin > len)
    	{
    		throw runtime_error("error");
    	}
    	char* str1 =new char[len+1];
    	strcpy(str1,str_source);
        for (; str_begin < str_end; ++str_begin,--str_end)
        {
    		char temp = str_source[str_begin];
    		str1[str_begin] = str_source[str_end-1];
    		str1[str_end-1] = temp;
        }
    	return str1;
    }
    //单词翻转
    char *ReversalChar(char   *strSouce)  
    {
       size_t len = str_len(strSouce);
       //char* str1 = reverse_str(strSouce,0,len);
       size_t start = 0;
       char* str1 =new char[len+1];
       str1 = reverse_str(strSouce,0,len);
       for (size_t i = 0; i < len; ++i)
       {
    	  if (strSouce[i] == ' ')
    	  {
    		  if (start == 0)
    		  {
    			  str1= reverse_str(str1,0,i);
    			  start = i+1;
    		  }
    		  else
    		  {
    			  str1 = reverse_str(str1,start,i);
    		  }
    	  }
    	     
       }
       return str1;
    }
    int main()
    {
    	char* str_sourec = "sd qw zx lk";
    	cout << ReversalChar(str_sourec);
    }
    
  • 相关阅读:
    用函数装饰一首诗
    [转]最常用的15大Eclipse开发快捷键技巧
    [转]python 模块 chardet下载及介绍
    python手动设置递归调用深度
    view-xpath
    开源项目的贡献流程
    MIT许可证
    scrapy分布式的几个重点问题
    【bzoj1026】[SCOI2009]windy数 数位dp
    【bzoj5064】B-number 数位dp
  • 原文地址:https://www.cnblogs.com/xiangshancuizhu/p/2108447.html
Copyright © 2011-2022 走看看