实现一个函数,把字符串 s 中的每个空格替换成“%20

字符串替换

#include
#include
using namespace std;

/*
请实现一个函数,把字符串 s 中的每个空格替换成"%20"
实现思路:
	首先遍历字符串中存在的空格数量,获取新字符串长度
	malloc创建一个新的空数组,长度为上一步求得的
	遍历s中出现的第一个空格,出现,则替换,循环至结束
*/

void func(string s) {
	int a = s.size();
	int count = 0;
	int atr_j = 0;
	for (int i = 0; i < a; i++) {
		if (s[i] == ' ')
			count++;
	}
	char* strArray = (char*)malloc(((a - count) + count * 3)+1);
	for (int i = 0; i < a; i++) {
		if (s[i] == ' ') {
			strArray[atr_j] = '%';
			strArray[atr_j +1] = '2';
			strArray[atr_j +2] = '0';
			atr_j = atr_j + 3;
		}
		else
		{
			strArray[atr_j] = s[i];
			atr_j++;
		}
	}
	for (int i = 0; i < ((a - count) + count * 3) * sizeof(char); i++) {
		cout << strArray[i] ;
	}							
}

int main() {
	
	//string s="hello";
	 func("h c");
	return 0;
}




输出结果正确。

你可能感兴趣的:(C++)