請實現一個函數,將一個字符串中的每個空格替換

 

題目:請實現一個函數,將一個字符串中的每個空格替換成“%20”。例如,當字符串爲We Are Happy.則經過替換之後的字符串爲We%20Are%20Happy。

分析:先統計空格個數,然後計算將所有空格替換成"%20"時的尾下標,然後將原數據從尾->頭進行拷貝,如果是空格,就拷貝三個字符,'0'、'2'、'%',否則是普通字符就原樣拷貝,直到原字符到頭。

void replaceSpace(char *str, int length) {

	int count = 0;
	char* s1 = str;
    //計算空格個數
	while (*s1 != '\0')
	{
		if(*s1==' ')
			count++;
		
		s1++;
	}
	
	int end=length-1;//原尾下標
	int new_length=length+2*count;
	int new_end=new_length-1;//新尾下標

	while(end>=0)
		{
			if(str[end]==' ')
			{
				str[new_end--]='0';
				str[new_end--]='2';
				str[new_end--]='%';
				end--;
			}
			else
			{
				str[new_end--]=str[end--];
			}
	}
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章