zoukankan      html  css  js  c++  java
  • 【剑指offer】将字符串中的空格替换成"%20"

    #include <iostream>
    #include <string>
    using namespace std;
    
    char *ReplaceSpace(char *str,int MaxLen)
    {
    	int SpaceNum = 0;
    	int srcIdx = 0;
    	int srcLen = 0;
    	int dstIdx = 0;
    	int dstLen = 0;
    	char *strTmp = str;
    	if(NULL == str)
    	{
    		return NULL;
    	}
    	while('' != *strTmp)
    	{
    		srcLen++;
    		if(' ' == *strTmp)
    		{
    			SpaceNum++;
    		}
    		strTmp++;
    	}
    	dstLen = srcLen + 2*SpaceNum;
    	if(dstLen > MaxLen)
    	{
    		cout<<"error !! dstLen is more than MaxLen!";
    		return NULL;
    	}
    	while(srcLen >=0 &&dstLen > srcLen)
    	{
    		if(' ' == str[srcLen] )
    		{
    			str[dstLen--] = '0'; 
    			str[dstLen--] = '2'; 
    			str[dstLen--] = '%'; 
    		}
    		else
    		{
    			str[dstLen--] = str[srcLen];
    			//cout<<str[srcLen]<<endl;
    		}
    		srcLen--;
    	}
    	return str;
    }
    int main(void)  
    {  
    	char str[30] = "you are a coder!";
    	char *resultStr = NULL;
    	resultStr = ReplaceSpace(str,30);
    	if(resultStr != NULL)
    	{
    		while(*resultStr != '')
    		{
    			cout<<*resultStr;
    			resultStr++;
    			
    		}
    	}
    	else
    	{
    		cout<<"Result is NULL";
    	}
    	cout<<endl;
    	
    	return 0;  
    }    
    

      

  • 相关阅读:
    牛客算法周周练18A
    洛谷P2580
    Codeforces 617E
    SPOJ 3267
    Codeforces Round #661 (Div. 3) 解题报告(ABCD)
    Codeforces 1399D
    Codeforces 1399C
    Codeforces 1399B
    Codeforces 1399A
    牛客算法周周练18 解题报告(ABCE)
  • 原文地址:https://www.cnblogs.com/xqn2017/p/8024432.html
Copyright © 2011-2022 走看看