• 字符串之移位


    1.循环左移

    void reverse(char *start,char *end)
    {
    	
    	char temp = '';
    	while(start <end)
    	{
    		temp = *start;
    		*start = *end;
    		*end = temp;
    		start++;
    		end--;
    	}
    
    }
    
    
    int main()
    {
    	char str[] = "abcdefghi";
    	int m = 3;
    	reverse(str,str + m -1);
    	reverse(str +m,str + strlen(str) - 1);
    	reverse(str,str + strlen(str) - 1);
    	cout << str <<endl;
       
    	return 0;
    }
    

    2.字符串转置,是循环移动的一种特殊情况

    void reverse(char *str)
    {
    	int length = strlen(str);
    	char *start = str; 
    	char *end= str + length -1;
    	char temp = '';
    	while(start <end)
    	{
    		temp = *start;
    		*start = *end;
    		*end = temp;
    		start++;
    		end--;
    	}
    
    }
    

    3.移动包含问题

    字符串str1是否可以通过移动得到str2,只需要通过判断str2是否在str1str1中即可。

    4.字符串单词翻转

    "I am from Wuhan." -> "Wuhan. from am I"

    void reverse(char *start,char *end)
    {
    	
    	char temp = '';
    	while(start <end)
    	{
    		temp = *start;
    		*start = *end;
    		*end = temp;
    		start++;
    		end--;
    	}
    
    }
    
    void ReverseSentence(char *str)
    {
    	char *start = str;
    	char *end = str;
    	while (*end != '')
    	{
    		if (*end == ' ')
    		{
    			reverse(start,end -1);
    			end++;
    			start = end;
    		}
    		else
    		{
    			end++;
    		}			
    	}
    	reverse(start,end - 1);
    	reverse(str,end-1);
    }
    
  • 相关阅读:
    离线存储
    创业公司 加入
    console 代理
    HTTP 协议中 Vary 的一些研究
    reactNative 的一些学习
    srcset 图片自适应
    一些不错的文章分享
    前端网站大全
    c# 捕捉键盘按键
    SQL 中With as 的用法
  • 原文地址:https://www.cnblogs.com/liuweilinlin/p/3281328.html
Copyright © 2020-2023  润新知