博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面试题5:字符串替换空格
阅读量:4314 次
发布时间:2019-06-06

本文共 2497 字,大约阅读时间需要 8 分钟。

 

/*******************************************************************Copyright(c) 2018, htfengAll rights reserved.*******************************************************************///==================================================================// 《剑指Offer——名企面试官精讲典型编程题》C++代码//// 面试题5:字符串替换空格// 题目:实现一个函数,把字符串中的每个空格替换成“%20”(空格的ASCII为32,十六进制的0x20)//==================================================================#include
using namespace std;// 功能函数void ReplaceBlank(char string[], int length) { if (string == nullptr || length < 0) return; // 遍历一次得到字符串长度和空格个数 int orignalLength = 0; int numberOfBlank = 0; int i = 0; while (string[i] != '\0') { ++orignalLength; if (string[i] == ' ') ++numberOfBlank; ++i; } // 把空格替换成“%20”后字符串长度为newLength int newLength = orignalLength + numberOfBlank * 2; if (newLength > length) return; int indexOfOriginal = orignalLength; int indexOfNew = newLength; while (indexOfOriginal >= 0 && indexOfNew > indexOfOriginal) { if (string[indexOfOriginal] == ' ') { string[indexOfNew--] = '0'; string[indexOfNew--] = '2'; string[indexOfNew--] = '%'; } else { string[indexOfNew--] = string[indexOfOriginal]; } --indexOfOriginal; }}//================================测试代码==================================void Test(char *testName, char string[], int length, char except[]) { if (testName != nullptr) cout << testName << ":"; ReplaceBlank(string, length); if (except == nullptr && string == nullptr) cout << "passed." << endl; else if (except == nullptr && string != nullptr) cout << "failed." << endl; else if(strcmp(string, except) == 0) cout << "passed." << endl; else cout << "failed." << endl;}// 输入的字符串中包含空格void test1() { const int length = 100; char str[length] = "hello world"; char test[] = "test1"; char except[] = "hello%20world"; Test(test, str, length, except);}// 输入的字符串中没有空格void test2() { const int length = 100; char str[length] = "helloworld"; char test[] = "test2"; char except[] = "helloworld"; Test(test, str, length, except);}// 字符串是个nullptr指针void test3() { const int length = 0; char test[] = "test3"; Test(test, nullptr, length, nullptr);}// 主函数int main() { test1(); test2(); test3(); system("pause"); return 0;}

转载于:https://www.cnblogs.com/htfeng/p/9931729.html

你可能感兴趣的文章
QStyleFactory类参考
查看>>
ng-深度学习-课程笔记-2: 神经网络中的逻辑回归(Week2)
查看>>
正则表达式的搜索和替换
查看>>
个人项目:WC
查看>>
地鼠的困境SSL1333 最大匹配
查看>>
flume+elasticsearch+kibana遇到的坑
查看>>
Javascript 高阶函数等
查看>>
【MM系列】在SAP里查看数据的方法
查看>>
C#——winform
查看>>
CSS3 transform制作的漂亮的滚动式导航
查看>>
《小强升职记——时间管理故事书》读书笔记
查看>>
Alpha 冲刺(3/10)
查看>>
Kaldi中的Chain模型
查看>>
spring中的ResourceBundleMessageSource使用和测试示例
查看>>
css规范 - bem
查看>>
SQL 通用数据类型
查看>>
UVALive 6145 Version Controlled IDE(可持久化treap、rope)
查看>>
mysql 将两个有主键的表合并到一起
查看>>
底部导航栏-----FragmentTabHost
查看>>
在linux中安装jdk以及tomcat并shell脚本关闭启动的进程
查看>>