本文共 960 字,大约阅读时间需要 3 分钟。
给一个字符串,将其中的空格用一个东西替换
要求:时间复杂度O(n) 应用:网络编程中将特殊字符替换获得正确的参数值。#define _CRT_SECURE_NO_WARNINGS#includeusing 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;}
转载地址:http://yqstd.baihongyu.com/