zoukankan      html  css  js  c++  java
  • 面试题4:替换空格

    字符串替换问题思路1:从前往后的思想替换为从后往前的思想。

    //把字符串中的每个空格替换成"%20"。
    
    #include "stdafx.h"
    #include <iostream>
    using namespace std;
    #define length 100
    
    void ReplaceBlank(char string[])
    {
    	if(string==NULL)
    		return ;
    	
    	int originalLength=0;//字符串的实际长度
    	int numberOfBlank=0;//空格的个数
    	int i=0;
    	while(string[i]!='')
    	{
    		++originalLength;
    		if(string[i]==' ')
    			++numberOfBlank;
    		++i;
    	}
    	int newLength=originalLength+2*numberOfBlank;//新字符串的长度
    	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;
    	}
    }
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	char str[length]="We are happy";
    	ReplaceBlank(str);
    	cout<<str<<endl;
    	return 0;
    }
    

      

  • 相关阅读:
    C#网络爬虫 WebUtility使用 转义字符 urlCode
    C#遍历文件夹及文件
    ThreadException
    unhandledException
    linq to object
    扩展方法
    反射常规
    字典缓存和泛型缓存
    lock和Monitor(锁对象)
    单例模式
  • 原文地址:https://www.cnblogs.com/Mikuroro/p/4564121.html
Copyright © 2011-2022 走看看