精华内容
下载资源
问答
  • 字符串操作
    万次阅读 多人点赞
    2019-04-02 08:17:03

    1)字符串操作
    strcpy(p, p1) 复制字符串
    strncpy(p, p1, n) 复制指定长度字符串
    strcat(p, p1) 附加字符串
    strncat(p, p1, n) 附加指定长度字符串
    strlen§ 取字符串长度
    strcmp(p, p1) 比较字符串
    strcasecmp忽略大小写比较字符串
    strncmp(p, p1, n) 比较指定长度字符串
    strchr(p, c) 在字符串中查找指定字符
    strrchr(p, c) 在字符串中反向查找
    strstr(p, p1) 查找字符串
    strpbrk(p, p1) 以目标字符串的所有字符作为集合,在当前字符串查找该集合的任一元素
    strspn(p, p1) 以目标字符串的所有字符作为集合,在当前字符串查找不属于该集合的任一元素的偏移
    strcspn(p, p1) 以目标字符串的所有字符作为集合,在当前字符串查找属于该集合的任一元素的偏移

    • 具有指定长度的字符串处理函数在已处理的字符串之后填补零结尾符

    2)字符串到数值类型的转换
    strtod(p, ppend) 从字符串 p 中转换 double 类型数值,并将后续的字符串指针存储到 ppend 指向的 char* 类型存储。
    strtol(p, ppend, base) 从字符串 p 中转换 long 类型整型数值,base 显式设置转换的整型进制,设置为 0 以根据特定格式判断所用进制,0x, 0X 前缀以解释为十六进制格式整型,0 前缀以解释为八进制格式整型
    atoi§ 字符串转换到 int 整型
    atof§ 字符串转换到 double 符点数
    atol§ 字符串转换到 long 整型

    3)字符检查
    isalpha() 检查是否为字母字符
    isupper() 检查是否为大写字母字符
    islower() 检查是否为小写字母字符
    isdigit() 检查是否为数字
    isxdigit() 检查是否为十六进制数字表示的有效字符
    isspace() 检查是否为空格类型字符
    iscntrl() 检查是否为控制字符
    ispunct() 检查是否为标点符号
    isalnum() 检查是否为字母和数字
    isprint() 检查是否是可打印字符
    isgraph() 检查是否是图形字符,等效于 isalnum() | ispunct()

    4)函数原型
    原型:strcpy(char destination[], const char source[]);
    功能:将字符串source拷贝到字符串destination中
    例程:
    #include <iostream.h>
    #include <string.h>
    void main(void)
    {
      char str1[10] = { “TsinghuaOK”};
      char str2[10] = { “Computer”};
      cout <<strcpy(str1,str2)<<endl;
    }

    运行结果是:Computer
    第二个字符串将覆盖掉第一个字符串的所有内容!
    注意:在定义数组时,字符数组1的字符串长度必须大于或等于字符串2的字符串长度。不能用赋值语句将一个字符串常量或字符数组直接赋给一个字符数组。所有字符串处理函数都包含在头文件string.h中。

    strncpy(char destination[], const char source[], int numchars);

    strncpy:将字符串source中前numchars个字符拷贝到字符串destination中。
    strncpy函数应用举例
    原型:strncpy(char destination[], const char source[], int numchars);
    功能:将字符串source中前numchars个字符拷贝到字符串destination中
    例程:

    #include <iostream.h>
    #include <string.h>
    void main(void)
    {
      char str1[10] = { "Tsinghua "};
      char str2[10] = { “Computer”};
      cout <<strncpy(str1,str2,3)<<endl;
    }

    运行结果:Comnghua
    注意:字符串source中前numchars个字符将覆盖掉字符串destination中前numchars个字符!

    原型:strcat(char target[], const char source[]);
    功能:将字符串source接到字符串target的后面
    例程:
    #include <iostream.h>
    #include <string.h>
    void main(void)
    {
      char str1[] = { "Tsinghua "};
      char str2[] = { “Computer”};
      cout <<strcpy(str1,str2)<<endl;
    }

    运行结果:Tsinghua Computer

    注意:在定义字符数组1的长度时应该考虑字符数组2的长度,因为连接后新字符串的长度为两个字符串长度之和。进行字符串连接后,字符串1的结尾符将自动被去掉,在结尾串末尾保留新字符串后面一个结尾符。

    原型:strncat(char target[], const char source[], int numchars);
    功能:将字符串source的前numchars个字符接到字符串target的后面
    例程:

    #include <iostream.h>
    #include <string.h>
    void main(void)
    {
      char str1[] = { "Tsinghua "};
      char str2[] = { “Computer”};
      cout <<strncat(str1,str2,3)<<endl;
    }

    运行结果:Tsinghua Com

    原型:int strcmp(const char firststring[], const char secondstring);
    功能:比较两个字符串firststring和secondstring
    例程:

    #include <iostream.h>
    #include <string.h>
    void main(void)
    {
      char buf1[] = “aaa”;
      char buf2[] = “bbb”;
      char buf3[] = “ccc”;
      int ptr;
      ptr = strcmp(buf2,buf1);
      if(ptr > 0)
       cout <<“Buffer 2 is greater than buffer 1”<<endl;
      else
       cout <<“Buffer 2 is less than buffer 1”<<endl;
      ptr = strcmp(buf2,buf3);
      if(ptr > 0)
       cout <<“Buffer 2 is greater than buffer 3”<<endl;
      else
       cout <<“Buffer 2 is less than buffer 3”<<endl;
    }

    运行结果是:Buffer 2 is less than buffer 1
    Buffer 2 is greater than buffer 3

    原型:strlen( const char string[] );
    功能:统计字符串string中字符的个数
    例程:

    #include <iostream.h>
    #include <string.h>
    void main(void)
    {
    char str[100];
    cout <<“请输入一个字符串:”;
    cin >>str;
    cout <<“The length of the string is :”<<strlen(str)<<“个”<<endl;
    }

    运行结果The length of the string is x (x为你输入的字符总数字)

    注意:strlen函数的功能是计算字符串的实际长度,不包括’\0’在内。另外,strlen函数也可以直接测试字符串常量的长度,如:strlen(“Welcome”)。

    void *memset(void *dest, int c, size_t count);
    将dest前面count个字符置为字符c. 返回dest的值.

    void *memmove(void *dest, const void *src, size_t count);
    从src复制count字节的字符到dest. 如果src和dest出现重叠, 函数会自动处理. 返回dest的值.

    void *memcpy(void *dest, const void *src, size_t count);
    从src复制count字节的字符到dest. 与memmove功能一样, 只是不能处理src和dest出现重叠. 返回dest的值.

    void *memchr(const void *buf, int c, size_t count);
    在buf前面count字节中查找首次出现字符c的位置. 找到了字符c或者已经搜寻了count个字节, 查找即停止. 操作成功则返回buf中首次出现c的位置指针, 否则返回NULL.

    void *_memccpy(void *dest, const void *src, int c, size_t count);
    从src复制0个或多个字节的字符到dest. 当字符c被复制或者count个字符被复制时, 复制停止.

    如果字符c被复制, 函数返回这个字符后面紧挨一个字符位置的指针. 否则返回NULL.

    int memcmp(const void *buf1, const void *buf2, size_t count);
    比较buf1和buf2前面count个字节大小.
    返回值< 0, 表示buf1小于buf2;
    返回值为0, 表示buf1等于buf2;
    返回值> 0, 表示buf1大于buf2.

    int memicmp(const void *buf1, const void *buf2, size_t count);

    比较buf1和buf2前面count个字节. 与memcmp不同的是, 它不区分大小写.

    返回值同上.

    char *strrev(char *string);
    将字符串string中的字符顺序颠倒过来. NULL结束符位置不变. 返回调整后的字符串的指针.

    char *_strupr(char *string);
    将string中所有小写字母替换成相应的大写字母, 其它字符保持不变. 返回调整后的字符串的指针.

    char *_strlwr(char *string);
    将string中所有大写字母替换成相应的小写字母, 其它字符保持不变. 返回调整后的字符串的指针.

    char *strchr(const char *string, int c);
    查找字 串string中首次出现的位置, NULL结束符也包含在查找中. 返回一个指针, 指向字符c在字符串string中首次出现的位置, 如果没有找到, 则返回NULL.

    char *strrchr(const char *string, int c);
    查找字符c在字符串string中最后一次出现的位置, 也就是对string进行反序搜索, 包含NULL结束符.
    返回一个指针, 指向字符c在字符串string中最后一次出现的位置, 如果没有找到, 则返回NULL.

    char *strstr(const char *string, const char *strSearch);
    在字符串string中查找strSearch子串. 返回子串strSearch在string中首次出现位置的指针. 如果没有找到子串strSearch, 则返回NULL. 如果子串strSearch为空串, 函数返回string值.

    char *strdup(const char *strSource);
    函数运行中会自己调用malloc函数为复制strSource字符串分配存储空间, 然后再将strSource复制到分配到的空间中. 注意要及时释放这个分配的空间.
    返回一个指针, 指向为复制字符串分配的空间; 如果分配空间失败, 则返回NULL值.

    char *strcat(char *strDestination, const char *strSource);
    将源串strSource添加到目标串strDestination后面, 并在得到的新串后面加上NULL结束符. 源串strSource的字符会覆盖目标串strDestination后面的结束符NULL. 在字符串的复制或添加过程中没有溢出检查, 所以要保证目标串空间足够大. 不能处理源串与目标串重叠的情况. 函数返回strDestination值.

    char *strncat(char *strDestination, const char *strSource, size_t count);
    将源串strSource开始的count个字符添加到目标串strDest后. 源串strSource的字符会覆盖目标串strDestination后面的结束符NULL. 如果count大于源串长度, 则会用源串的长度值替换count值. 得到的新串后面会自动加上NULL结束符. 与strcat函数一样, 本函数不能处理源串与目标串重叠的情况. 函数返回strDestination值.

    char *strcpy(char *strDestination, const char *strSource);
    复制源串strSource到目标串strDestination所指定的位置, 包含NULL结束符. 不能处理源串与目标串重叠的情况.函数返回strDestination值.

    char *strncpy(char *strDestination, const char *strSource, size_t count);
    将源串strSource开始的count个字符复制到目标串strDestination所指定的位置. 如果count值小于或等于strSource串的长度, 不会自动添加NULL结束符目标串中, 而count大于strSource串的长度时, 则将strSource用NULL结束符填充补齐count个字符, 复制到目标串中. 不能处理源串与目标串重叠的情况.函数返回strDestination值.

    char *strset(char *string, int c);
    将string串的所有字符设置为字符c, 遇到NULL结束符停止. 函数返回内容调整后的string指针.

    char *strnset(char *string, int c, size_t count);
    将string串开始count个字符设置为字符c, 如果count值大于string串的长度, 将用string的长度替换count值. 函数返回内容调整后的string指针.

    size_t strspn(const char *string, const char *strCharSet);
    查找任何一个不包含在strCharSet串中的字符 (字符串结束符NULL除外) 在string串中首次出现的位置序号. 返回一个整数值, 指定在string中全部由characters中的字符组成的子串的长度. 如果string以一个不包含在strCharSet中的字符开头, 函数将返回0值.

    size_t strcspn(const char *string, const char *strCharSet);
    查找strCharSet串中任何一个字符在string串中首次出现的位置序号, 包含字符串结束符NULL.
    返回一个整数值, 指定在string中全部由非characters中的字符组成的子串的长度. 如果string以一个包含在strCharSet中的字符开头, 函数将返回0值.

    char *strspnp(const char *string, const char *strCharSet);
    查找任何一个不包含在strCharSet串中的字符 (字符串结束符NULL除外) 在string串中首次出现的位置指针. 返回一个指针, 指向非strCharSet中的字符在string中首次出现的位置.

    char *strpbrk(const char *string, const char *strCharSet);
    查找strCharSet串中任何一个字符在string串中首次出现的位置, 不包含字符串结束符NULL.
    返回一个指针, 指向strCharSet中任一字符在string中首次出现的位置. 如果两个字符串参数不含相同字符, 则返回NULL值.

    int strcmp(const char *string1, const char *string2);
    比较字符串string1和string2大小.
    返回值< 0, 表示string1小于string2;
    返回值为0, 表示string1等于string2;
    返回值> 0, 表示string1大于string2.

    int stricmp(const char *string1, const char *string2);
    比较字符串string1和string2大小,和strcmp不同, 比较的是它们的小写字母版本.返回值与strcmp相同.

    int strcmpi(const char *string1, const char *string2);
    等价于stricmp函数, 只是提供一个向后兼容的版本.

    int strncmp(const char *string1, const char *string2, size_t count);
    比较字符串string1和string2大小,只比较前面count个字符. 比较过程中, 任何一个字符串的长度小于count, 则count将被较短的字符串的长度取代. 此时如果两串前面的字符都相等, 则较短的串要小.
    返回值< 0, 表示string1的子串小于string2的子串;
    返回值为0, 表示string1的子串等于string2的子串;
    返回值> 0, 表示string1的子串大于string2的子串.

    int strnicmp(const char *string1, const char *string2, size_t count);
    比较字符串string1和string2大小,只比较前面count个字符. 与strncmp不同的是, 比较的是它们的小写字母版本. 返回值与strncmp相同.

    char *strtok(char *strToken, const char *strDelimit);
    在strToken 串中查找下一个标记, strDelimit字符集则指定了在当前查找调用中可能遇到的分界符. 返回一个指针, 指向在strToken中找到的下一个标记. 如果找不到标记, 就返回NULL值. 每次调用都会修改strToken内容, 用NULL字符替换遇到的每个分界符.

    c++概念字符串操作

    一、char_traits 字符特征类
    1)意义:包装特定串元素的通用行为界面,以便容器实现时依据特征信息而执行特定行为
    2)定义了通用类型名

    typedef _Elem char_type;
    typedef int int_type;
    typedef streampos pos_type;
    typedef streamoff off_type;
    typedef mbstate_t state_type;

    其中 int_type 表示字符元素转换到特定编码时的整型表示,pos_type, off_type 分别作为字符串索引和字符串元素偏移的类型,类似容器迭中的指针,迭代类型和指针,迭代器的偏移类型。最后的 state_type 用于存储流状态,如出错,格式控制等等。

    3)定义了字符 / 字符串操作的包装界面,以便通用算法的调用

    assign(a, b) 定义将 b 字符赋值给 a 字符的过程,实现 a.operator = 的行为
    eq(a, b) 定义 a 字符和 b 字符的相等关系,实现 a.operator == 的行为
    lt(a, b) 定义 a 小于 b 的关系,实现 a.operator < 的行为
    compare(a_ptr, b_ptr, cnt) 定义两组字符串的比较,返回 int 类型,实现类似 memcmp 的行为
    length(ptr) 定义取字符串长度,实现类似 strlen 的行为
    copy(a_ptr, b_ptr, cnt) 定义两组字符串的复制,实现类似 memcpy 的行为
    move(a_ptr, b_ptr, cnt) 定义两组字符串的不重叠复制,实现类似 memmove 的行为
    assign(ptr, cnt, ch) 定义了填充字符串的过程,实现类似 memset 的行为
    to_int_type(ch) 定义了 char_type 到 int_type 整型的转换过程
    to_char_type(n) 定义了 int_type 到 char_type 字符型的转换过程
    eq_int_type(a, b) 定义两个和当前 char_type 类型对应的 int_type 的相等关系
    eof() 定义字符串结尾符,使用整型表示
    not_eof(n) 定义非字符串结尾符,若输入结尾符,则返回 1,其他输入返回原值,即总是不返回 eof()

    4)int_type 类型应是当前字符类型的整型编码

    二、std::string 并不是序列容器,没有 front() 和 back() 界面用于取出前端和尾端的元素,使用 std::string::operator [] 并传递 streampos 类型取得特定元素,如 std::string::size() - 1 作为索引取得最后一个字符

    三、basic_string 支持的初始化
    1)默认初始化
    2)分配器
    3)复制构造
    4)局部复制 [_Roff, _Roff + _Count)
    5)局部复制 + 分配器
    6)C 字符串 [_Ptr, )
    7)C 字符串 + _Count [_Ptr, _Ptr + _Count)
    8)C 字符串 + 分配器
    9)C 字符串 + _Count + 分配器 [_Ptr, _Ptr + _Count)

    10)_Count * _Ch
    11)_Count * _Ch + 分配器
    12)迭代器 [_ItF, _ItL)
    13)迭代器 + 分配器

    字符到串不能初始化,但支持 operator = 赋值和 operator += 累加赋值运算。

    四、字符串的区间有效性
    对串的索引访问在超过字符串的有效区间时,因为串的在实现上对内置的字符缓冲区执行下标访问,所以不会导致异常,但是将得到不可预知的结果,通常是不可用的。
    将其他字符串作为右值输入时,对该串取出计数大于串大小时按串大小计算。
    std::basic_string::size_type 的实际类型为 size_t,在 Visual C++ 7.1 中实现为 unsigned,std::basic_string::npos 被静态设定为

    (basic_string<_Elem, _Traits, _Alloc>::size_type)(-1);

    在查找子字符串等操作时,函数返回 npos 的值表示非法索引。

    五、比较字符串
    允许的比较对象
    1)compare(s2) 其他同类型字符串
    2)compare§ C 风格字符串
    3)compare(off, cnt, s2) [off, off + cnt) 同 s2 执行比较
    4)compare(off, cnt, s2, off2, cnt2) [off, off + cnt) 同 s2 [off2, cnt2) 执行比较
    5)compare(off, cnt, p) [off, off + cnt) 同 [p , ) 执行比较
    6)compare(off, cnt, p, cnt2) [off, off + cnt) 同 [p, p + cnt2) 执行比较

    返回 -1, 0, 1 作为小于、等于和大于的比较结果。

    六、附加数据
    1)使用 operator += 接受其他字符串,C 风格字符串和字符
    2)使用 push_back() 在尾部附加字符,并使得通过字符串构造的 back_iterator 可以访问
    3)append() 附加
    1、append(s) 追加字符串
    2、append(s, off, cnt) 追加字符串 s [off, off + cnt)
    3、append§ 追加字符串 [p, )
    4、append(p, cnt) 追加字符串 [p, p + cnt)
    5、append(n, c) 填充 n * c
    6、append(InF, InL) 追加输入流 [InF, InL)

    4)insert() 插入
    1、insert(off, s2) 插入字符串
    2、insert(off, s2, off2, cnt2) 插入字符串 s [off2, off2 + cnt2)
    3、insert(off, p) 插入字符串 [p, )
    4、insert(off, p, cnt) 插入字符串 [p, p + cnt)

        5、insert(off, n, c) 插入 n * c 
        6、insert(iter) 元素默认值填充 
        7、insert(iter, c) 插入特定元素 
        8、insert(iter, n, c) 插入 n*c 
        9、insert(iter, InF, InL) 插入 [InF, InL) 
    

    5)operator +(a, b)
    字符串关联运算符重载中支持 operator + 的形式
    1、s + s
    2、s + p
    3、s + c
    4、p + s
    5、c + s

    七、查找、替换和清除
    1)find() 查找
    1、find(c, off) 在 s [off, npos) 中查找 c
    2、find(p, off, n) 在 s [off, npos) 中查找 [p, p + n)
    3、find(p, off) 在 s [off, npos) 中查找 [p, )
    4、find(s2, off) 在 s [off, npos) 中查找 s2

    2)find() 的变种
    1、rfind() 具有 find() 的输入形式,反序查找
    2、find_first_of() 具有 find() 的输入形式,返回第一个匹配的索引
    3、find_last_of() 具有 find() 的输入形式,返回倒数第一个匹配的索引
    4、find_first_not_of() 具有 find() 的输入形式,返回第一个不匹配的索引
    5、find_last_not_of() 具有 find() 的输入形式,返回倒数第一个不匹配的索引

    3)replace() 替换
    1、replace(off, cnt, s2) 将 s [off, off + cnt) 替换成 s2
    2、replace(off, cnt, s2, off2, cnt2) 将 s [off, off + cnt) 替换成 s2 [off2, off2 + cnt2)
    3、replace(off, cnt, p) 将 s [off, off + cnt) 替换成 [p, )
    4、replace(off, cnt, p, cnt2) 将 s [off, off + cnt) 替换成 [p, p + cnt2)

        5、replace(off, cnt, n, c) 将 s [off, off + cnt) 替换成 c * n 
    

    使用迭代器的情况:
    6、replace(InF, InL, s2) 将 [InF, InL) 替换成 s2
    7、replace(InF, InL, p) 将 [InF, InL) 替换成 [p, )
    8、replace(InF, InL, p, cnt) 将 [InF, InL) 替换成 [p, p + cnt)
    9、replace(InF, InL, n, c) 将 [InF, InL) 替换成 n * c
    10、replace(InF, InL, InF2, InL2) 将 [InF, InL) 替换成 [InF2, InL2)

    4)erase() 删除
    1、erase(off, cnt) 从字符串 s 中删除 s [off, off + cnt)
    2、erase(iter) 从字符串 s 中删除 *iter
    3、erase(ItF, ItL) 从字符串 s 中删除 [ItF, ItL)

    八、取出字符串
    1)取得 C 风格字符串
    c_str() 返回常量类型的 C 风格字符串指针,copy(ptr, cnt, off = 0) 则将指定大小的字符串复制到特定指针。data() 在 Visual C++ 7.1 中仅仅调用了 c_str() 实现。
    2)取得子字符串
    substr(off, cnt) 取得 s [off, off + cnt) 的副本。
    3)复制子字符串
    copy(p, off, cnt) 将 s [off, off + cnt) 复制到 p。

    九、字符串的缓冲区管理
    字符串具有类似 std::vector 的缓冲区管理界面。
    size() 取得有效元素长度
    max_size() 取得当前内存分配器能分配的有效空间
    reserve() 为缓冲区预留空间
    capacity() 取得缓冲区的容量
    resize() 重设串的长度,可以为其指定初始化值

    十、定义输入迭代器的尾端
    向 istream_iterator 传递输入流对象以创建输入迭代器,输入迭代器持有输入流对象的指针,默认创建和读取流失败的情况下该指针被设置为 0。并且在实现输入迭代器间的 operator == 相等运算时,进行持有的流对象指针的相等比较,这样,默认创建的输入迭代器将被用于匹配输入流的结束。

    • 当输入流读取失败,用户执行 if, while 条件判断时,实际上先将判断值转换成 void* 类型,或者根据 operator ! 运算符的返回结果,对输入流重载 operator void* 和 operator ! 运算符,可以定义输入流在布尔表达式中的行为,使得当流读取失败的情况下,输入迭代器可以通过布尔表达式来确认,而不是显式访问 fail() 成员函数.
    更多相关内容
  •   ELT过程一般都是避免不了对字符串的操作,kettle中的“字符串操作”可以很便捷的帮我们处理一些关于字符串的问题,下面先对“字符串操作”的几个功能做一个介绍。 Trim type:用来去除字符串的首尾空白字符(如...

      ELT过程一般都是避免不了对字符串的操作,kettle中的“字符串操作”可以很便捷的帮我们处理一些关于字符串的问题,下面先对“字符串操作”的几个功能做一个介绍。

    Trim type用来去除字符串的首尾空白字符(如space,tab),这里可以选择去除字符串头部空白字符(left),字符串尾部空白字符(right),头尾都去除空白字符(both)。

    Lower/Upper就是简单的大小写转换,当然只是针对于英文字符的,汉字和数字是无效的。

    Padding追加字符串,可以选择头部追加(left),或者尾部追加(right),不过这个是要配合“Pad char”和“Pad length”使用的。

    Pad char只需要再输入框输入想要添加的字符串即可。

    Pad length输入长度,这个可以这么理解,假如说未追加内容的字符串是abc长度为3,想要追加的字符串是wq,是以right的方式追加的,如果输入的长度是3,那么结果是没有任何改变的;如果输入的长度是4,那么结果就是abcw;输入的是5,那结果就是abcwq;输入的长度是6,那结果就是abcwqw,相信说到这里应该就很清楚了,不管“Padding”选择的是right还是left,规则都是一样的。

    InitCap这个的作用就是保证字符串的首字母大写其余的字母都是小写,比如有一个字符串是aBC,如果InitCap的参数选择了“是”,那么结果就是“Abc”。

    Escape这个一般应用的较少,比如说选择了其中的“Use CDATA”,那么最后出来的字符串就是CDATA格式的字符串“<![CDATA[test_str]]>”,标红的部分就是原本的字符串,其它的就不一一介绍了,感兴趣的实验一下就明白了。

    Digitsdigits本身就是数字的意思,而选择的参数只有三两个“none、”“only”和“remove”,none就是不操作;only就是只保留数字,其他的字符不要;remove就是其他的字符都留下,只将数字字符去除掉。

    Remove Special character这个就很简单了,就是去除特殊字符,可以根据需求选择需要删除的字符,如空格(space)、换行符(line feed)等,这里就不一一介绍了,如有疑惑可以百度翻译。

      每个部分的功能基本讲解清楚了,了解这个使用起来基本就没问题了,下面简单的介绍下如何使用。

    1.核心对象->转换->字符串操作,将其拖拽到转换页面中,如下图所示
    在这里插入图片描述
    2.双击“字符串操作”,选择或者输入相关参数,前面已经讲解每个部分的作用和使用方法,这里就简单配置其中部分,如下图所示
    在这里插入图片描述
    3.库表中原始数据如图1所示,虚线标记的为空白字符(space),结果数据如图2所示

    图1
    在这里插入图片描述
    图2
    在这里插入图片描述
    通过结果数据可以看出,就是按照配置的参数的规则对字符串进行操作,头部的空白字符已经去除掉了,并且追加的字符‘Q’也是按照输入的长度追加的MAN长度为3,输入长度为5,结果数据追加了两个字符‘Q’,WOMEN长度为5,结果数据没有变化,所以结果是正确的。

    展开全文
  • Numpy字符串操作

    万次阅读 2021-08-24 22:12:28
    char模块 ... char模块提供常用的字符串操作函数,如连接、切片、删除、替换等 [i.title() for i in str_list] np.char.title(str_arr) np.char.isalpha(arr) np.char.count(arr,’a’) ...

     

     char模块

    • Numpy提供char模块处理字符串,运用向量化运算方式
    • char模块提供常用的字符串操作函数,如连接、切片、删除、替换等
    [i.title() for i in str_list]
    np.char.title(str_arr)
    
    np.char.isalpha(arr)
    np.char.count(arr,’a’)

     

    展开全文
  • C语言常用字符串操作函数整理(详细全面)

    千次阅读 多人点赞 2020-01-04 16:25:47
    char *gets(char *s); #include<stdio.h>...返回值: 成功:读入的字符串 失败:NULL gets(str)与scanf(“%s”,str)的区别: gets(str)允许输入的字符串含有空格 scanf(“%s”,str)不允许含有空...

    字符串相关

    1.char *gets(char *s);

    #include<stdio.h>

    功能:
      从标准输入读入字符,并保存到s指定的内存空间,直到出现换行符或读到文件结尾为止
    参数:
      s:字符串首地址
    返回值:
      成功:读入的字符串
      失败:NULL

    gets(str)与scanf(“%s”,str)的区别:
      gets(str)允许输入的字符串含有空格
      scanf(“%s”,str)不允许含有空格
    注意:
      由于scanf()和gets()无法知道字符串s大小,必须遇到换行符或读到文件结尾为止才接收输入,因此容易导致字符数组越界(缓冲区溢出)的情况。

    举例:

    printf("请输入str: ");
    gets(str);
    printf("str = %s\n", str);
    

    2.char *fgets(char *s, intsize, FILE *stream);

    #include<stdio.h>

    功能:
      从stream指定的文件内读入字符,保存到s所指定的内存空间,直到出现换行字符、读到文件结尾或是已读了size - 1个字符为止,最后会自动加上字符 ‘\0’ 作为字符串结束

    参数:
      s:字符串
      size:指定最大读取字符串的长度(size - 1)
      stream:文件指针,如果读键盘输入的字符串,固定写为stdin

    返回值:
      成功:成功读取的字符串
      读到文件尾或出错: NULL
    描述:
      fgets()在读取一个用户通过键盘输入的字符串的时候,同时把用户输入的回车也做为字符串的一部分。通过scanf和gets输入一个字符串的时候,不包含结尾的“\n”,但通过fgets结尾多了“\n”。fgets()函数是安全的,不存在缓冲区溢出的问题。

    举例:

    char str[100];
    printf("请输入str: ");
    fgets(str, sizeof(str), stdin);
    printf("str = \"%s\"\n", str);
    

    3.int puts(const char *s);

    #include<stdio.h>

    功能:
      标准设备输出s字符串,在输出完成后自动输出一个’\n’。

    参数:
      s:字符串首地址。

    返回值:
      成功:非负数
      失败:-1
    举例:

    #include <stdio.h>
    int main()
    {
        printf("hello world");
        puts("hello world");
    
        return 0;
    }
    

    4.int fputs(const char *str, FILE *stream);

    #include<stdio.h>

    功能:
      将str所指定的字符串写入到stream指定的文件中,字符串结束符’\0’不写入文件。

    参数:
      str:字符串
      stream:文件指针,如果把字符串输出到屏幕,固定写为stdout。

    返回值:
      成功:0
      失败:-1
    注意:
      fputs()是puts()的文件操作版本,但fputs() 不会自动输出一个’\n’。

    举例:

    printf("hello world");
    puts("hello world");
    fputs("hello world", stdout);
    

    5. size_t strlen(const char *s);

    #include<string.h>

    功能:
      计算指定指定字符串s的长度,不包含字符串结束符‘\0’.

    参数:
       s:字符串首地址

    返回值:
       字符串s的长度,size_t 为unsigned int类型

    举例:

    char str[] = "abcdefg";
    int n = strlen(str);
    printf("n = %d\n", n);
    

    6. char *strcpy(char *dest, const char *src);

    #include<string.h>

    功能:
      把src所指向的字符串复制到dest所指向的空间中,’\0’也会拷贝过去

    参数:
      dest:目的字符串首地址
      src:源字符首地址

    返回值:
      成功:返回dest字符串的首地址
      失败:NULL
      注意: 如果参数dest所指的内存空间不够大,可能会造成缓冲溢出的错误情况。

    举例:

    char dest[20] = "123456789";
    char src[] = "hello world";
    strcpy(dest, src);
    printf("%s\n", dest);
    

    7. char *strncpy(char *dest, const char *src, size_tn);

    #include<string.h>

    功能:
      把src指向字符串的前n个字符复制到dest所指向的空间中,是否拷贝结束符看指定的长度是否包含’\0’。

    参数:
      dest:目的字符串首地址
      src:源字符首地址
      n:指定需要拷贝字符串个数

    返回值:
      成功:返回dest字符串的首地址
      失败:NULL

    举例:

    char dest[20] ;
    char src[] = "hello world";
    
    strncpy(dest, src, 5);
    printf("%s\n", dest);
    
    dest[5] = '\0';
    printf("%s\n", dest);
    

    8. char *strcat(char *dest, const char *src);

    #include<string.h>

    功能:
      将src字符串连接到dest的尾部,‘\0’也会追加过去

    参数:
      dest:目的字符串首地址
      src:源字符首地址

    返回值:
      成功:成功:返回dest字符串的首地址
      失败:NULL

    举例:

    char str[20] = "123";
    char *src = "hello world";
    printf("%s\n", strcat(str, src));
    

    9. char *strncat(char *dest, const char *src, size_tn);

    #include<string.h>

    功能:
      将src字符串前n个字符连接到dest的尾部,‘\0’也会追加过去

    参数:
      dest:目的字符串首地址
      src:源字符首地址
      n:指定需要追加字符串个数

    返回值:
      成功:成功:返回dest字符串的首地址
      失败:NULL

    举例:

    char str[20] = "123";
    char *src = "hello world";
    printf("%s\n", strncat(str, src, 5));
    

    10. int strcmp(const char *s1, const char *s2);

    #include<string.h>

    功能:
       比较 s1 和 s2 的大小,比较的是字符ASCII码大小。

    参数:
      s1:字符串1首地址
      s2:字符串2首地址
    返回值:
      相等:0
      大于:>0
      小于:<0
    举例:

    char *str1 = "hello world";
    char *str2 = "hello mike";
    
    if (strcmp(str1, str2) == 0)
    {
        printf("str1==str2\n");
    }
    elseif (strcmp(str1, str2) > 0)
    {
        printf("str1>str2\n");
    }
    else
    {
        printf("str1<str2\n");
    }
    

    11. int strncmp(const char *s1, const char *s2, size_tn);

    #include<string.h>

    功能:
       比较 s1 和 s2 前n个字符的大小,比较的是字符ASCII码大小。

    参数:
      s1:字符串1首地址
      s2:字符串2首地址
      n:指定比较字符串的数量

    返回值:
      相等:0
      大于:>0
      小于:<0
    举例:

    char *str1 = "hello world";
    char *str2 = "hello mike";
    
    if (strncmp(str1, str2, 5) == 0)
    {
        printf("str1==str2\n");
    }
    elseif (strcmp(str1, "hello world") > 0)
    {
        printf("str1>str2\n");
    }
    else
    {
        printf("str1<str2\n");
    }
    

    12. int sprintf(char *str , const char *format, …);

    #include<stdio.h>

    功能:
      根据参数format字符串来转换并格式化数据,然后将结果输出到str指定的空间中,直到出现字符串结束符 ‘\0’ 为止。

    参数:
      str:字符串首地址
      format:字符串格式,用法和printf()一样

    返回值:
      成功:实际格式化的字符个数
      失败: - 1

    举例:

    char dst[100] = { 0 };
    int a = 10;
    char src[] = "hello world";
    printf("a = %d, src = %s", a, src);
    printf("\n");
    int len = sprintf(dst, "a = %d, src = %s", a, src);
    printf("dst = \" %s\"\n", dst);
    printf("len = %d\n", len);
    

    13. int sscanf(const char *str, const char *format, …);

    #include<stdio.h>

    功能:
      从str指定的字符串读取数据,并根据参数format字符串来转换并格式化数据。

    参数:
      str:指定的字符串首地址
      format:字符串格式,用法和scanf()一样

    返回值:
      成功:参数数目,成功转换的值的个数
      失败: - 1

    举例:

    char src[] = "a=10, b=20";
    int a;
    int b;
    sscanf(src, "a=%d,  b=%d", &a, &b);
    printf("a:%d, b:%d\n", a, b);
    

    14. char *strchr(const char *s, intc);

    #include<string.h>

    功能: 在字符串s中查找字母c出现的位置。

    参数:
      s:字符串首地址
      c:匹配字母(字符)

    返回值:
      成功:返回第一次出现的c地址
      失败: NULL

    举例:

    char src[] = "ddda123abcd";
    char *p = strchr(src, 'a');
    printf("p = %s\n", p);
    

    15. char *strstr(const char *haystack, const char *needle);

    #include<string.h>

    功能:
      在字符串haystack中查找字符串needle出现的位置。

    参数:
      haystack:源字符串首地址
      needle:匹配字符串首地址

    返回值:
      成功:返回第一次出现的needle地址
      失败: NULL

    举例:

    char src[] = "ddddabcd123abcd333abcd";
    char *p = strstr(src, "abcd");
    printf("p = %s\n", p);
    

    16.size_t strspn(const char* str1, const char* str2)

    #include<string.h>

    功能
      用来计算str1字符串开始部分匹配str2字符串的字符个数
    返回值
      返回字符串str1开头连续包含字符串str2内的字符数目。如果str所包含的字符都属于str2,那么返回str1的长度。如果str的第一个字符不属于str2,那么返回0

    17.size_t strspn(const char* str1, const char* str2)

    功能
      用来计算str1字符串开始部分不匹配str2字符串的字符个数
    返回值
      返回字符串str1开头部分不出现在字符串str2内的字符数目。

    18. char *strtok(char *str, const char *delim);

    #include<string.h>

    功能:
      来将字符串分割成一个个片段。当strtok()在参数s的字符串中发现参数delim中包含的分割字符时, 则会将该字符改为\0 字符,当连续出现多个时只替换第一个为\0。

    参数:
      str:指向欲分割的字符串
      delim:为分割字符串中包含的所有字符

    返回值:
      成功:分割后字符串首地址
      失败: NULL

    举例:

    int main(void)
    {
        char input[16]="abc,d";
        char*p;
        /*strtok places a NULL terminator
        infront of the token,if found*/
        p=strtok(input,",");
        if(p)
            printf("%s\n",p);
            /*Asecond call to strtok using a NULL
            as the first parameter returns a pointer
            to the character following the token*/
        p=strtok(NULL,",");
        if(p)
            printf("%s\n",p);
        return 0;
    }
    

    19. int atoi(const char *nptr);

    #include<stdlib.h>

    功能:
      atoi()会扫描 nptr字符串, 跳过前面的 空格字符,直到遇到 数字或 正负号才开始做 转换,而遇到 非数字或 字符串结束符(’\0’)才 结束转换,并将结果返回 返回值。

    参数:
      nptr:待转换的字符串

    返回值:
      成功:转换后整数
      类似的函数有:
      atof():把一个小数形式的字符串转化为一个浮点数。
      atol():将一个字符串转化为long类型

    举例:

    char str1[] = "-10";
    int num1 = atoi(str1);
    printf("num1 = %d\n", num1);
    char str2[] = "0.123";
    double num2 = atof(str2);
    printf("num2 = %lf\n", num2);
    

    20.long int strtol(const char *nptr,char **endptr,int base);;

    #include<stdlib.h>

    功能:
      strtol函数会将参数nptr字符串根据参数base来转换成长整型数,参数base范围从2至36。
    参数:
      nptr:待转换的字符串
      endptr:是一个指针的地址,该指针被设置为标识输入数字结束字符的地址
      base:表示以什么进制写入数字

    返回值:
      该函数返回转换后的长整数,如果没有执行有效的转换,则返回一个零值。
      类似的函数有:
      strtoul():把字符串转换成unsigned 1ong类型的值
      strtod():把字符串转换成double类型的值

    举例:

    #include<stdio.h>
    #include<stdlib.h>
    #define LIM 30
    char *s_gets(char*st,int n);
    
    int main()
    {
        char number[LIM];
        char *end;
        long value;
        puts("Enter a number(empty line to quit):");
        while(s_gets(number,LIM)&&number[0]!='\0')
            value=strtol(number,&end,10);/*十进制*/
        printf("base 10 input,base 10 output:%1d,stopped at %s(%d)\n",value,end,*end);
        value=strtol(number,&end,16);/*十六进制*/
        printf("base 16 input,base 10 output:%1d,stopped at %s(%d)\n",value,end,*end);
        puts("Next number:");
        puts("Bye!\n");
        return 0;
    }
    
    char*s gets(char*st,int n)
    {
        char* ret_val;
        int i=0;
        ret val=fgets(st,n,stdin);
        if (ret_val)
            while (st[i]l='\n'&& st[i]!='\0')
                i++;
        if(st[i] =='\n')
                st[i]='\0';
        else
            while (getchar()!='\n')
                  continue;
        return ret_val;
    }
    
    

    下面是该程序的输出示例:
    Enter a number(empty line to quit):
    10
    base 10 input,base 10 output:10,stopped at(0)
    base 16 input,base 10 output:16,stopped at(0)
    Next number:
    10atom
    base 10 input,base 10 output:10,stopped at atom(97)
    base 16 input,base 10 output:266,stopped at tom (116)
    Next number:

    Bye!
      首先注意,当base分别为10和16时,字符串"10"分别被转换成数字10和16。还要注意,如果end指向一个字符,*end就是一个字符。因此,第1次转换在读到空字符时结束,此时end指向空字符。打印end会显示一个空字符串,以%d转换说明输出end显示的是空字符的ASCIl码。
      对于第2个输入的字符串,当base为10时,end的值是’a’字符的地址所以打印end显示的是字符串“atom”,打印
    end显示的是’a’字符的ASCIl码。然而,当base为16时,'a’字符被识别为一个有效的十六进制数,strtol()函数把十六进制数10a转换成十进制数266。
      strtol()函数最多可以转换三十六进制,‘a’~'z’字符都可用作数字。strtoul()函数与该函数类似,但是它把字符串转换成无符号值。strtod()函数只以十进制转换,因此它值需要两个参数。
      许多实现使用itoa()和ftoa()函数分别把整数和浮点数转换成字符串。但是这两个函数并不是C标准库的成员,可以用sprintf()函数代替它们,因为sprintf()的兼容性更好。
      数字既能以字符串形式储存,也能以数值形式储存。把数字储存为字符串就是储存数字字符。例如,数字213以‘2’、’1’、3’、‘\0’的形式被储存在字符串数组中。以数值形式储存213,储存的是int类型的值。
      C要求用数值形式进行数值运算(如,加法和比较)。但是在屏幕上显示数字则要求字符串形式,因为屏幕显示的是字符。printf()和sprintf()函数,通过%d和其他转换说明,把数字从数值形式转换为字符串形式,scanf()可以把输入字符串转换为数值形式。C还有一些函数专门用于把字符串形式转换成数值形式。
      假设你编写的程序需要使用数值命令形参,但是命令形参数被读取为字符串。因此,要使用数值必须先把字符串转换为数字。如果需要整数,可以使用atoi()函数(用于把字母数字转换成整数),该函数接受一个字符串作为参数,返回相应的整数值。

    字符分类函数

    int isalnum(int c):检查字符是否为数字或字母;(0~9,a~z,A~Z) 
    int isalpha(int c):检查字符是否为字母;(a~z, A~Z) 
    int iscntrl(int c):检查字符是否为控制字符;(八进制000~037以及177的字符) 
    int isdigit(int c):检查字符是否为十进制数字;(0~9) 
    int isgraph(int c):检查字符是否为图形表示,依赖于使用语言的环境;0~9,a~z,A~Z,以及标点符号) 
    int islower(int c):检查字符是否为小写的字母;(a~z) 
    int isprint(int c):检查字符是否为可打印的;(数字、字母、标点符号、空白字符) 
    int ispunct(int c):检查字符是否为标点符号;(! ” # $ % &( ) * + , - . / : ; < = > ? @ [ ] ^ _ ` { | } ~) 
    int isspace(int c):检查字符是否为空白字符;(TAB、换行、垂直TAB、换页、回车、空格) 
    int isupper(int c):检查字符是否为大写字母;(A~Z) 
    int isxdigit(int c):检查字符是否为十六进制数字;(0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f) 
    

    字符转换

    int tolower(int c):转化字符为小写字母; 
    int toupper(int c):转化字符为大写字母;
    
    展开全文
  • python 字符串操作方法详解

    千次阅读 2019-04-23 15:47:37
    字符串序列用于表示和存储文本,python中字符串是不可变对象。字符串是一个有序的字符的集合,用于存储和表示基本的文本信息,一对单,双或三引号中间包含的内容称之为字符串。其中三引号可以由多行组成,编写多行...
  • c++、boost字符串操作

    千次阅读 2020-09-18 17:16:09
    c++STL+boost可以实现一些常用的字符串操作,记录如下 #include <iostream> #include <string> #include <boost/algorithm/string.hpp> #include <boost/xpressive/xpressive_dynamic.hpp>...
  • neo4j字符串操作大全

    千次阅读 2019-09-30 17:20:31
    1. 字符串基本操作函数 ...3. apoc 包的字符串操作函数 4. 字符串操作符 5. 参考资料 字符串基本操作函数 函数 函数用途 lTrim() 删除字符串左边多余的空格 rTrim() 删除字符串右...
  • 二、剪切字符串、字符串替换、Concat fields、字符串操作 剪切字符串是指定输入流字段裁剪的位置剪切出新的字段。 字符串替换是指定搜索内容和替换内容,如果输入流的字段匹配上搜索内容就进行替换生成新字段。 ...
  • PHP字符串操作

    千次阅读 2018-09-06 21:26:22
    一、认识字符串   1、字符串是由0个或多个字符组成的...三、字符串常用操作   1、字符串连接运算符”.”, 用于把两个字符串值连接起来 $str1 = 'My name is '; $str2 = 'wuhen'; echo $str1.$str2;
  • java 字符串操作

    万次阅读 多人点赞 2018-10-09 20:45:03
    字符串的初始化赋值和输出
  • C(string.h)字符串操作函数总结

    万次阅读 多人点赞 2018-07-26 00:59:10
    功能:将字符串str2复制到字符串str1中,并覆盖str1原始字符串,可以用来为字符串变量赋值 返回:str1 注意:1)字符串str2会覆盖str1中的全部字符,2)字符串str2的长度不能超过str1 char str1[] = "We ...
  • 本次学习的是有关字符串方面的操作,为方便大家学习,可以参照API阅读此类的各个方法知识。 API链接如下:https://pan.baidu.com/s/1_DMTYTstbDtfdjutBE3h8Q 提取码:elgp 字符串广泛应用 在Java 编程中,在 Java ...
  • Oracle常用字符串操作

    千次阅读 2018-08-07 17:06:40
    一、oracle操作字符串:拼接、替换、截取、查找;总体来说这篇文章还是写的很清晰的,'和''就不要过多纠结了 二、oracle中的trim函数使用介绍 --字符串去空格 --输出:a b c; SELECT TRIM(' a b c ') || ';' FROM ...
  • golang常见字符串操作函数

    万次阅读 2020-10-03 09:59:53
    字符串转换为int:strconv.Atoi() 字符串转化为float:strconv.ParseFloat() 字符串比较:strings.Compare() 字符串查找,包含:strings.Contains() 字符串查找位置:strings.Index() 统计子串出现的个数...
  • python字符串操作

    千次阅读 2020-12-06 02:58:22
    字符串简介字符串序列用于表示和存储文本,python中字符串是不可变的,一旦声明,不能改变这里的的改变,指的是声明变量后的真实对象。但如果第二次用到变量,赋值,系统会默认为你新生成一个变量。比如:>>&...
  • Python - 对Series做字符串操作

    万次阅读 2019-01-07 21:46:45
    Pandas的DataFrame中的每一列都是一个Series,若该列全为字符串,则可对其作字符串操作: 拆分 Series.str.split() &amp;gt;&amp;gt;&amp;gt; s.str.split(',') 替换 Series.str.replace() &...
  • C/C++语言字符串操作总结大全(超详细)

    千次阅读 多人点赞 2018-03-23 13:49:00
    字符串操作strcpy(p, p1) 复制字符串strncpy(p, p1, n) 复制指定长度字符串strcat(p, p1) 附加字符串strncat(p, p1, n) 附加指定长度字符串strlen(p) 取字符串长度strcmp(p, p1) 比较字符串strcasecmp忽略大小写比较...
  • 1.利用Kettle的“过滤记录”,“字符串替换”,“字符串操作”组件,实现记录的过滤,字符串替换及字符串的去空格功能。 2.熟练掌握“过滤记录”,“字符串替换”,“字符串操作”等组件的使用,实现记录的过滤,...
  • 今天带大家温习的是Python中最基础同时也是最常用的知识点——字符串操作。 会使用Python的小伙伴通常对下述的内容都比较的熟悉了,不过想要全都懂,可能还需要像我一样专门花时间去整理,或者专门去收藏他人整理好...
  • C++字符串操作详解

    万次阅读 多人点赞 2016-05-19 22:56:33
    选用C++标准程序库中的string类,是因为他和c-string比较起来,不必担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要。我们可以用 = 进行赋值...
  • Python字符串操作大全(一)

    万次阅读 多人点赞 2018-09-20 19:56:44
    学习一门编程语言一般从基础的数据类型开始 ,python中的数据类型有:整型、浮点、布尔、字符串、列表、元组、字典、集合、空等,之前总结了一些字符串操作和应用,希望能帮到学习python的朋友们。 一、字符串的...
  • string命令提供了三种字符串裁剪方式:trim、trimleft和trimright。每种方式都需要两个参数,一个指定待裁剪的字符串,一个指定裁剪模式。默认情形下(不指定裁剪模式),裁剪空白符(空格、制表符、换行符和换页符...
  • 转自:http://www.pinlue.com/article/2019/08/0610/499465675333.html
  • python2之字符串操作

    千次阅读 2018-03-19 14:26:17
    更新一篇python字符串操作函数,未经允许切勿擅自转载。字符串拼接:a+b代码:a = "woshi" b = "carcar96" print a+b #方法1 print "==%s=="%(a+b) #方法2运行结果:获取字符串长度...
  • Tcl的字符串操作:获取字符

    千次阅读 2019-04-06 22:37:05
    Tcl本身提供了很多字符串操作命令,而且很多对字符串操作的命令是以string开头的。例如,string index可获取指定位置的字符,而string range可获取指定区间的字符。这里就要提到Tcl中的字符串索引。如下图所示,对于...
  • 利用Kettle的“过滤记录”,“字符串替换”,“字符串操作”组件,实现记录的过滤,字符串替换及字符串的去空格功能。 【实验原理】 通过“过滤记录”对单元格为空的记录进行过滤,然后通过“字符串替换”指定替换...
  • C++ 字符串操作函数

    千次阅读 2017-02-23 17:28:58
    由于字符串使用广泛,C和C++提供了一些字符串函数,包括字符串连接函数strcat,字符串复制函数strcpy,字符串比较函数strcmp,字符串长度函数strlen,在C语言中被定义在string.h中定义。在C++中被定义在cstring和...
  • Python 截取字符串使用 变量[头下标:尾下标],就可以截取相应的字符串,其中下标是从0开始算起,可以是正数或负数,下标可以为空表示取到头或尾。 # 例1:字符串截取 str = '12345678' print str[0:1] >> 1 # ...
  • 字符串操作符“+” 和“+=”

    千次阅读 2019-07-06 15:46:09
    字符串操作符“+” 和“+=” “+”在操作字符串的时候有一个特性的用途:连接两个不同的字符串 ,尽管+与+=的传统使用方式不是太一样,但是我们还是很自然的使用这些操作符。 字符串操作符有一些很有趣的行为,假如...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,817,833
精华内容 1,127,133
关键字:

字符串操作