替换空格
来源:互联网 发布:湘西蛊毒 知乎 编辑:程序博客网 时间:2024/05/16 01:18
给一个字符串,将其中的空格用一个东西替换
要求:时间复杂度O(n)
应用:网络编程中将特殊字符替换获得正确的参数值。
#define _CRT_SECURE_NO_WARNINGS#include<iostream>using namespace std;void ReplaceBlank(char *str, size_t len)//len为数组的总长{ if (str == NULL || len <= 0) { return; } int numBlank = 0;//空格数 int effectLen = 0; //有效长度 while (str[effectLen]!='\0') { if (str[effectLen] == ' ') { numBlank++; } effectLen++; } int newLen = effectLen + numBlank * 2; //判断是否越界 if (newLen > len) { return; } while (effectLen>=0) { if (str[effectLen] == ' ') { str[newLen--] = '0'; str[newLen--] = '2'; str[newLen--] = '%'; } else { str[newLen--] = str[effectLen]; } effectLen--; }}void test(){ char str[20] = "We are happy!"; ReplaceBlank(str, 20); cout << str << endl;}int main(){ test(); system("pause"); return 0;}
0 0