[C.C++] C++版:请实现一个函数,把字符串 s 中的每个空格替换成“%20“

573 0
Honkers 2026-2-4 12:46:05 来自手机 | 显示全部楼层 |阅读模式

请实现一个函数,把字符串 s 中的每个空格替换成"%20"

  1. 示例 1:
  2. 输入:s = "We are happy."
  3. 输出:"We%20are%20happy."
  4. 限制:
  5. 0 <= s 的长度 <= 10000
复制代码
  1. int main(){
  2. // STL
  3. string s;
  4. string sp="%20";
  5. // 输入带空格的string
  6. getline(cin,s);
  7. int j = 0;
  8. for(int i=0; i<s.size(); i++){
  9. if(s[i]==' '){
  10. s.replace(i,1,sp);
  11. }
  12. }
  13. printf("%s", s.c_str());
  14. return 0;
  15. }
复制代码
  1. //双指针法:解题思路,先求出空格数,然后判断若是空格则替换
  2. int main(){
  3. string s;
  4. getline(cin,s);
  5. int j=0, num=0, i=0;//num用于统计空格数
  6. for(int i=0; i<s.size(); i++){
  7. if(s[i]==' '){
  8. num++;
  9. }
  10. }
  11. j=s.size();
  12. i=j+2*num;//i表示替换之后的string长度
  13. s.resize(i);
  14. while(j<i){//当j<i表明没有空格了
  15. if(s[j]!=' '){
  16. s[i--]=s[j--];
  17. }
  18. else{
  19. s[i--]='0';
  20. s[i--]='2';
  21. s[i--]='%';
  22. j--;
  23. }
  24. }
  25. printf("%s", s.c_str());
  26. }
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2026 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行