替换字符串中空格算法

来源:互联网 发布:三星9500支持4g网络吗 编辑:程序博客网 时间:2024/05/07 05:07

案例:实现一个函数,把字符串中的每个空格替换成“%20”。

#include "stdafx.h"#include <iostream>using namespace std;void ReplaceBlank(char string[], int length){if (string == NULL || length <= 0){return;}//OriginalLength为字符串的实际长度int OriginalLength = 0;int numOfBlank = 0;int i = 0;while (string[i] != '\0'){i++;OriginalLength++;if (string[i] == ' '){numOfBlank++;}}//newLength为把空格替换成‘%20’后的长度int newLength = OriginalLength + numOfBlank * 2;if (newLength>length){return;}int indexOfOriginal = OriginalLength;int indexOfNew = newLength;while (indexOfOriginal > 0 && indexOfOriginal < indexOfNew){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[100] = "Hello, I am coming!";ReplaceBlank(str, 100);cout << str << endl;return 0;}
运行结果如下:



0 0