题目:替换字符串中的空格为“%20”。
说明:在浏览器的地址栏中输入某个网址,在解析过程中会看到类似“%20”的字样,这应该就是网络编程涉及的内容。。。
该题总体来说比较简单(连我都能想到!),个人认为考查的是思维的敏捷。
1、先按照自己的思路编程如下:
//以下为开辟新的存储单元,并在新的存储上执行替换O(n) #include "stdafx.h" #include <iostream> using namespace std; /*int main(int argc, char* argv[]) { char String[] = "We are happy."; char* str = String; char result0[30]; // char result0[] = " "; (会导致程序崩溃!) // 预先开辟结果的存储空间 char* result = result0; char* SubtituteString = "%20"; char* Subtemp = SubtituteString; while(*str != ' ') { if(' ' == *str) { while(*SubtituteString != ' ') { *result = *SubtituteString; SubtituteString++; result++; } str++; SubtituteString = Subtemp; } else { *result = *str; result++; str++; } } *result = ' '; cout<<result0<<endl; return 0; }*/ //以下为本地替换O(n) int main(int argc, char* argv[]) { char String[30] = "We are happy."; int len = strlen(String); int i = 0, num = 0; //找空格总数O(n) while(i < len) if(String[i++] == ' ') num++; //最终字符串所占空间 int totallen = len+2*num; String[totallen] = '