zoukankan      html  css  js  c++  java
  • 16.替换空格

    https://blog.csdn.net/jisuanji198509/article/details/95238355

    于是想要将一个char转换为string只能找其他间接的方法了,这里提供几种:

    //1、构造函数里有个string(size_t,char)
    char x = 'a';
    string s(1,x);
    //2、string初始化没char,但是push_back可以
    string s;
    s.push_back(x);
    //3、string可以由char*初始化
    char xx[2] = {x,0};
    string s(xx)

    题解:链接:https://www.nowcoder.com/questionTerminal/4060ac7e3e404ad1a894ef3e17650423
    来源:牛客网

    分析:先转为string,然后处理完成后再转为char *。但不是以返回值的形式,还要利用好原来的空间,用strcpy实现之。

    处理过程循环查找,每次找到就替换,且把每次的找到的结果当成下一次的参数,避免重复从头查找。

    代码

    class Solution {
    public:
        void replaceSpace(char *str,int length) {
            string s(str);
            int i=0;
            while((i=s.find(' ',i))>-1){
                s.erase(i,1);
                s.insert(i,"%20");
                 
            }
            auto ret=s.c_str();
            strcpy(str,ret);
        }
    };

    https://www.cnblogs.com/ryanzheng/p/8998047.html

    我们经常会使用C和C++的混合编程,在某些情况下,需要将C++的string,转换成char* 的字符串。下面说两种可行的方法,作为总结。

    1. data();

    如:

    string str="abc";
    char*p=(char*)str.data();

    2.c_str();

    如:

    string str="adcd";

    char *p=(char*)str.c_str();

    暂时就记这两种吧,简单而且差不多够用了。

    class Solution {
    public:
        void replaceSpace(char *str,int length) {
           // if(str == NULL) return ;
            string sd;
            string res(str);//s()将char* 变成string 
            for(int i=0;i<res.length();i++)
            {
                if (res[i] == ' ') sd += "%20";
                else sd += res[i];
            }
            char *ret= (char *)sd.c_str();//将string转换成char *
            strcpy(str,ret);
    
        }
    }; 

    函数关键字:strcpy
    使用格式:char* strcmp(char* buffer,char*str)
    功 能: 把从str地址开始且含有NULL结束符的字符串复制到以buffer开始的地址空间,buffer地址空间中必须有足够的空间来容纳str的字符串

    class Solution {
    public:
        void replaceSpace(char *str,int length) {
           // if(str == NULL) return ;
            string buffer;
            string res(str);//s()将char* 变成string 
            for(int i=0;i<res.length();i++)
            {
                if (res[i] == ' ') buffer += "%20";
                else buffer += res[i];
            }
            char *ret= (char *)buffer.c_str();//将string转换成char *
            strcpy(str,ret);
    
        }
    }; 
    带女朋友搬家新家条件不好,累到女朋友了,让女朋友受苦了,特此明志:每天学习,明年这个时候(20190812)让女朋友住上大房子,永远年轻,永远热泪盈眶,很多人都是这样,他们都把自己当成身在梦中一样,浑浑噩噩地过日子,只有痛苦或爱或危险可以让他们重新感到这个世界的真实。
  • 相关阅读:
    阿里P8架构师谈:阿里双11秒杀系统如何设计?
    秒杀系统设计的知识点
    秒杀系统架构优化思路
    秒杀系统解决方案
    Entity Framework Code First (七)空间数据类型 Spatial Data Types
    Entity Framework Code First (六)存储过程
    Entity Framework Code First (五)Fluent API
    Entity Framework Code First (四)Fluent API
    Entity Framework Code First (三)Data Annotations
    Entity Framework Code First (二)Custom Conventions
  • 原文地址:https://www.cnblogs.com/make-big-money/p/12359381.html
Copyright © 2011-2022 走看看