阅读背景:

剑指offer-面试题5-替换空格-字符串

来源:互联网 
/*
题目:
	请实现一个函数,把字符串中的每个空格替换成'%20'.
	例如输入“We are happy",则输出 ”We%20are%happy"。
*/
/*
结题思路:
	考虑给定数组内存足够,且不能开辟新的数组的情况。
	使用两个指针,从后往前复制。
	注意数组最后一个字符为'
/*
题目:
	请实现一个函数,把字符串中的每个空格替换成'%20'.
	例如输入“We are happy",则输出 ”We%20are%happy"。
*/
/*
结题思路:
	考虑给定数组内存足够,且不能开辟新的数组的情况。
	使用两个指针,从后往前复制。
	注意数组最后一个字符为'\0'。
*/
void replaceBlank(char str[],int length){
	if(str == null || length <= 0){
		return;
	}
	int blankNum = 0;
	int index = 0;
	int originLength = 0;
	while(str[index] !='\0'){
		if(str[index] == ' '){
			blankNum++;
		}
		index++;
		originLength++;
	}
	
	int newLength = originLength + 2 * blankNum;
	if(length < newLength) return;
	int indexOfOrigin = originLength;
	int indexOfNew = newLength;
	while(indexOfOrigin < indexOfNew && indexOfOrigin >= 0){//标准答案加了indexOfOrigin >= 0 ,不明白意义
		if(str[indexOfOrigin] != ' '){
			str[indexOfNew--] = str[indexOfOrigin];
		}else{
			str[indexOfNew--] = '0';
			str[indexOfNew--] = '2';
			str[indexOfNew--] = '%';
		}
		indexOfOrigin--;
	}
	
	
	
	
}

  


转载自www.cnblogs.com/buaaZhhx/p/11801882.html'。 */ void replaceBlank(char str[],int length){ if(str == null || length <= 0){ return; } int blankNum = 0; int index = 0; int originLength = 0; while(str[index] !='
/*
题目:
	请实现一个函数,把字符串中的每个空格替换成'%20'.
	例如输入“We are happy",则输出 ”We%20are%happy"。
*/
/*
结题思路:
	考虑给定数组内存足够,且不能开辟新的数组的情况。
	使用两个指针,从后往前复制。
	注意数组最后一个字符为'\0'。
*/
void replaceBlank(char str[],int length){
	if(str == null || length <= 0){
		return;
	}
	int blankNum = 0;
	int index = 0;
	int originLength = 0;
	while(str[index] !='\0'){
		if(str[index] == ' '){
			blankNum++;
		}
		index++;
		originLength++;
	}
	
	int newLength = originLength + 2 * blankNum;
	if(length < newLength) return;
	int indexOfOrigin = originLength;
	int indexOfNew = newLength;
	while(indexOfOrigin < indexOfNew && indexOfOrigin >= 0){//标准答案加了indexOfOrigin >= 0 ,不明白意义
		if(str[indexOfOrigin] != ' '){
			str[indexOfNew--] = str[indexOfOrigin];
		}else{
			str[indexOfNew--] = '0';
			str[indexOfNew--] = '2';
			str[indexOfNew--] = '%';
		}
		indexOfOrigin--;
	}
	
	
	
	
}

  


转载自www.cnblogs.com/buaaZhhx/p/11801882.html'){ if(str[index] == ' '){ blankNum++; } index++; originLength++; } int newLength = originLength + 2 * blankNum; if(length < newLength) return; int indexOfOrigin = originLength; int indexOfNew = newLength; while(indexOfOrigin < indexOfNew && indexOfOrigin >= 0){//标准答案加了indexOfOrigin >= 0 ,不明白意义 if(str[indexOfOrigin] != ' '){ str[indexOfNew--] = str[indexOfOrigin]; }else{ str[indexOfNew--] = '0'; str[indexOfNew--] = '2'; str[indexOfNew--] = '%'; } indexOfOrigin--; } } /* 题目: 请实现一个函数,把字符串中的每个空格替换成'%20'. 例如输入“We



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: