什么是网络营销?,三门峡做网站优化,衡阳市建设局网站,王野天天精品题解 #x1f525; 《九章斩题录》 #x1f448; 猛戳订阅 面试题 01.03. URL化
#x1f4da; 题目#xff1a;URL化。编写一种方法#xff0c;将字符串中的空格全部替换为%20。假定该字符串尾部有足够的空间存放新增字符#xff0c;并且知道字符串的“真实”长度。… 精品题解 《九章斩题录》 猛戳订阅 面试题 01.03. URL化 题目URL化。编写一种方法将字符串中的空格全部替换为%20。假定该字符串尾部有足够的空间存放新增字符并且知道字符串的“真实”长度。注用Java实现的话请使用字符数组实现以便直接在数组上操作。
示例 1
输入Mr John Smith , 13
输出Mr%20John%20Smith示例 2
输入 , 5
输出%20%20%20%20%20
✅ 模板C
class Solution {
public:string replaceSpaces(string S, int length) {}
}; 思路重开一个新的数组然后遍历字符串的每个字符如果字符是空格就添加 %20 到数组中不是就直接添加当前字符。最后返回字符串就行值得注意的是这里要求我们知道字符串真实长度所以范围就别用 S.size() 了直接用它提供的 length 形参。 代码演示
class Solution {
public:string replaceSpaces(string S, int length) {string ans;for (int i 0; i length; i) {if (S[i] ) {ans %20;} else {ans S[i];}}return ans;}
}; 什么是 url 化
URL化也称为URL编码或百分号编码是一种将特殊字符和非安全字符转换为URL安全格式的过程。URL化是因为URLUniform Resource Locator中只能包含特定字符集合如果URL中包含不安全的字符或者需要传输的数据中包含特殊字符如空格、标点符号等就需要对它们进行编码以确保它们在URL中不引起混淆或错误。 URL化的主要目的
防止URL中的特殊字符干扰URL的解析和传输。
确保URL在各种网络和浏览器环境中都能正确解释和显示。
允许在URL中包含各种字符包括非ASCII字符以支持多语言和国际化的URL。 URL化的基本规则
将要编码的字符转换为其ASCII值的十六进制表示并在前面添加一个百分号 %。例如空格字符ASCII值为32会编码为%20。
保留一些特殊字符如字母、数字、连字符、下划线和句点它们不需要编码。
对于非ASCII字符通常使用 UTF-8 编码对其进行URL化。 以下是一些常见的URL编码示例
空格编码为 %20斜杠 / 编码为 %2F问号 ? 编码为 %3F等号 编码为 %3D百分号 % 编码为 %25 代码演示
#include iostream
#include string
#include cctype // 用于判断字符的函数// 函数将字符编码为URL安全格式
std::string urlEncode(const std::string input) {std::string encoded;for (char c : input) {if (std::isalnum(c) || c - || c _ || c . || c ~) {// 如果是字母、数字、连字符、下划线、点或波浪线保留不变encoded c;} else {// 否则将字符编码为百分号编码char buffer[4];snprintf(buffer, sizeof(buffer), %%%02X, static_castunsigned char(c));encoded buffer;}}return encoded;
}int main() {std::string input Hello World! How are you?;std::string encoded urlEncode(input);std::cout Original: input std::endl;std::cout Encoded: encoded std::endl;return 0;
}运行结果如下 Original: Hello World! How are you? Encoded: Hello%20World%21%20How%20are%20you%3F 原始字符串中的空格被编码为 %20感叹号被编码为 %21问号被编码为 %3F这是URL编码的标准结果。其他字符保持不变。
[ 笔者 ] 王亦优[ 更新 ] 2023.
❌ [ 勘误 ] /* 暂无 */[ 声明 ] 由于作者水平有限本文有错误和不准确之处在所难免本人也很想知道这些错误恳望读者批评指正 参考资料 Creference[EB/OL]. []. http://www.cplusplus.com/reference/. Microsoft. MSDN(Microsoft Developer Network)[EB/OL]. []. . 百度百科[EB/OL]. []. https://baike.baidu.com/. 牛客网. 剑指offer 题解 [EB/OL]. []. https://www.nowcoder.com/exam/oj/ta?tpId13.