精华内容
下载资源
问答
  • 字符串长度的计算与字符串比较

    千次阅读 多人点赞 2016-01-11 17:56:55
    字符串长度的计算 (1)计算字符串长度时关键是要注意辨认转义字符;(2)一个转义字符总是以反斜杠开始,再加一个其他字符组成。所以,遇到反斜杠时要特别注意!!! 1、不带转义字符的字符串  如:“abc!x=/”,其...

    字符串长度的计算
    (1)计算字符串长度时关键是要注意辨认转义字符;(2)一个转义字符总是以反斜杠开始,再加一个其他字符组成。所以,遇到反斜杠时要特别注意!!!
    1、不带转义字符的字符串
      如:”abc!x=/”,其长度为 7
    2、带转义字符的字符串
      (1) 字符串”abc\n”:其中的’\n’为转义字符(换行符),计算字符串长度时只能计作一个字符,所以该字符串的长度为4(而不是5)
      (2) 字符串”abc\n\\\’\”“:其中有4个转义字符:’\n’(换行符)、’\\’(反斜杠)、’\”(单引号)、’\”’(双引号),所以该字符串的长度为7(而不是11)。
      (3) 字符串“abc\0xyz”:其中有一个转义字符’\0’,它是字符串结束符,所以,当用函数strlen来测试该字符串的长度时,结果应该为3(而不是7)。
      (4) 字符串“abc\\0xy”:其中有一个转义字符’\\’(反斜杠),这样,后面的字符串“0xy”照样计算,所以,该字符串的长度为7(而不是将第二个反斜杠与其后的0结合为一个转义字符’\0’,若那样的话,第一个反斜杠将无法处理,因为一个转义字符总是由反斜杠加其他字符组成的,单独的一个反斜杠不能作为任何合法的字符)。
      (5) 若将字符串“abc\\0xy”改为“abc\\\0xy”:则其中有二个转义字符’\’(反斜杠)和’\0’(字符串结束符),这时,当用函数strlen来测试该字符串的长度时,结果应该为4(而不是7)。
      (6) 若将字符串“abc\\\0xy”改为“abc\\\061xy”:则其中有二个转义字符’\’(反斜杠)和’\061’(ASCII码值等于061的字符,也即数字字符’1’),这时,当用函数strlen来测试该字符串的长度时,结果应该为7(而不是4或9)。所以,当遇到转义字符’\0’时,还要看其后面是否还有数字,若有,则应将后面的数字(一至二位)与前面的’\0’相结合作为一个字符计入整个字符串的长度。
       若用printf(“abc\\\061xy”);输出结果为:abc\1xy
      (7)printf(“\x69\082\n”);输出结果为:i
       sizeof(“\x69\082\n”)结果为6
    \x69为十六进制的69,十进制105对应字母i,而\0xx是八进制,但八进制只有数字0-7,\082显然不是。

    字符串的比较
    1. C中的char[]

    #include <string.h>
    
    char s1[10],s2[10]; 
    ... 
    if(strcmp(s1,s2)==0) 
        printf("两字符串相等\n");
    //string.h 头文件中就有比较函数,可以用来比较是否相等

    C语言中为什么两个字符串不能直接进行比较?
    有如下代码:

    char s1[] = "abc";
    char s2[] = "abc";
    
    //如果直接进行比较:
    if (s1 == s2)
    {
    printf("s1等于 s2");
    }
    else
    {
    printf("s1 不等于s2");
    }

    大家想想输出结果会是什么呢?

    输出结果永远为:s1 不等于 s2.(不论你换成char s1[] = “abc”; char s2[] = “def”; 还是char s1[] = “def”; char s2[] = “abc”;,输出结果都一样)。

    为什么呢?
    大家因为这样比较,其实是在把s1和s2当作指针来进行比较,而不是比较两个数组中的内容。因为s1和s2在内存中位置肯定不同,所以s1 == s2的值肯定为0,所以出现上面的结果也就是理所当然了。
    这个应该可以追溯到C语言中 数组(字符串也可认为是数组)的访问机制

    2.C++中string字符串比较

    #include <iostream>
    #include <string>
    using namespace std;
    int main()
    {
        char a1[] = "abc";
        char a2[] = "abc";
        char a3[] = "abbc";
        if(a1 == a2)                    //a1 != a2
            printf("a1 = a2\n");
        else
            printf("a1 != a2\n");
        if(0 == strcmp(a1, a2))         //a1 = a2
            printf("a1 = a2\n");
        else
            printf("a1 != a2\n");
        if(strcmp(a2, a3)>0)            //a2 > a3
            printf("a2 > a3\n");
    
        string s1 = "abc";
        string s2 = a1;
        string s3 = "abbc";
        if(s1 == s2)                    //s1 = s2
            printf("s1 = s2\n");
        if(s1 == a1)                    //s1 = a1
            printf("s1 = a1\n");
        if(s2>s3)                       //s2 > s3
            printf("s2 > s3\n");
    
    
        return 0;
    }
    展开全文
  • C语言之 字符串长度的计算方法

    万次阅读 多人点赞 2018-08-16 20:39:04
    (1)计算字符串长度时关键是要注意辨认转义字符;(2)一个转义字符总是以反斜杠开始,再加一个其他字符组成。所以,遇到反斜杠时要特别注意!!! 1、不带转义字符的字符 如:“abc!x=/”,其长度为7 2、带转义...

    特别注意

    (1)计算字符串长度时关键是要注意辨认转义字符;(2)一个转义字符总是以反斜杠开始,再加一个其他字符组成。所以,遇到反斜杠时要特别注意!!!

    1、不带转义字符的字符

    如:“abc!x=/”,其长度为 7

    2、带转义字符的字符串

    (1) 字符串“abc\n”:其中的'\n'为转义字符(换行符),计算字符串长度时只能计作一个字符,所以该字符串的长度为4(而
    不是5)。


    (2) 字符串“abc\n\\\'\"":其中有4个转义字符:'\n'(换行符)、'\\'(反斜杠)、'\''(单引号)、'\"'(双引号),所以该字符串的长度为7(而不是11)。


    (3) 字符串“abc\0xyz”:其中有一个转义字符'\0',它是字符串结束符,所以,当用函数strlen来测试该字符串的长度时,结果应该为3(而不是7)。


    (4) 字符串“abc\\0xy”:其中有一个转义字符'\\'(反斜杠),这样,后面的字符串“0xy”照样计算,所以,该字符串的长度为7(而不是将第二个反斜杠与其后的0结合为一个转义字符'\0',若那样的话,第一个反斜杠将无法处理,因为一个转义字符总是由反斜杠加其他字符组成的,单独的一个反斜杠不能作为任何合法的字符)。


    (5) 若将字符串“abc\\0xy”改为“abc\\\0xy”:则其中有二个转义字符'\\'(反斜杠)和'\0'(字符串结束符),这时,当用函数strlen来测试该字符串的长度时,结果应该为4(而不是7)。


    (6) 若将字符串“abc\\\0xy”改为“abc\\\061xy”:则其中有二个转义字符'\\'(反斜杠)和'\061'(ASCII码值等于061的字符,也即数字字符'1'),'\x12'(1和2为两个16进制数,同上),这时,当用函数strlen来测试该字符串的长度时,结果应该为7(而不是4或9)。所以,当遇到转义字符'\0'时,还要看其后面是否还有数字,若有,则应将后面的数字(一至二位)与前面的'\0'相结合作为一个字符计入整个字符串的长度。若用printf(“abc\\\061xy”);输出,则输出结果为:abc\1xy

     

    注:

    C语言中没有字符串,用的是字符数组来模拟字符串

    sizeof 计算的是字符串在内存中的长度 即数组长度,返回的是变量声明后所占的内存数,而不是实际长度

    strlen 计算的是字符串的有效长度(不包括 '\0' )

    由图中关键字高亮也可看出:

    sizeof 是运算符(其运算值在编译时就计算好了);

    strlen() 是函数(其运算值要在运行时才能计算)。

     

     

    展开全文
  • sql获取字符串长度函数

    千次阅读 2019-12-19 11:52:38
    1、lenght返回以字节为单位的字符串的长度 lenght(string) -- 字符串 示例: SELECT classfyname,LENGHT(lassfyname) ...2、char_lenght返回字符串长度 char_lenght(string) -- 字符串 示例: SELECT cl...

    1、length返回以字节为单位的字符串的长度

    length(string)  -- 字符串
      示例:
         SELECT classfyname,LENGTH(lassfyname) FROM f79_22_volume 

    运行结果:

    图片加载失败

    2、char_length返回字符串长度 

    char_length(string)  -- 字符串
      示例:
         SELECT classfyname,CHAR_LENGTH(lassfyname) FROM f79_22_volume 

    运行结果:

    图片加载失败

    展开全文
  • 批处理:替换字符串、截取字符串、扩充字符串、获取字符串长度 ━━━━━━━━━━━━━━━━━━━━━━━━━━  替换字符串,即将某一字符串中的特定字符或字符串替换为给定的字符串。举例说明其功能: ...
    批处理:替换字符串、截取字符串、扩充字符串、获取字符串长度
    ━━━━━━━━━━━━━━━━━━━━━━━━━━
           替换字符串,即将某一字符串中的特定字符或字符串替换为给定的字符串。举例说明其功能:
      =========================================
      @echo off
      set aa=伟大的中国!我为你自豪!
      echo 替换前:%aa%
      echo 替换后:%aa:中国=中华人民共和国%
      echo aa = %aa%
      set "aa=%aa:中国=中华人民共和国%"
      echo aa = %aa%
      pause
      =========================================
      对于上面的例子有一点说明,对比两个echo aa = %aa%可以发现,如果要修改变量aa的内容的话,就需要将修改结果“%aa:中国=中华人民共和国%”赋值给变量aa。上面的字符串截取也有着同样的特点。
    ━━━━━━━━━━━━━━━━━━━━━━━━━━
    2、截取字符串
    ━━━━━━━━━━━━━━━━━━━━━━━━━━
            截取字符串可以说是字符串处理功能中最常用的一个子功能了,能够实现截取字符串中的特定位置的一个或多个字符。举例说明其基本功能:
      =========================================
      @echo off
      set ifo=abcdefghijklmnopqrstuvwxyz0123456789
      echo 原字符串(第二行为各字符的序号):
      echo %ifo%
      echo 123456789012345678901234567890123456
      echo 截取前5个字符:
      echo %ifo:~0,5%
      echo 截取最后5个字符:
      echo %ifo:~-5%
      echo 截取第一个到倒数第6个字符:
      echo %ifo:~0,-5%
      echo 从第4个字符开始,截取5个字符:
      echo %ifo:~3,5%
      echo 从倒数第14个字符开始,截取5个字符:
      echo %ifo:~-14,5%
      pause
      =========================================
      当然,上面的例子只是将字符串处理的基本功能展示出来了,还看不出字符串处理具体有什么用处。下面这个例子是对时间进行处理。
      =========================================
      @echo off
      echo 当前时间是:%time% 即 %time:~0,2%点%time:~3,2%分%time:~6,2%秒%time:~9,2%厘秒
      pause
      =========================================
    ━━━━━━━━━━━━━━━━━━━━━━━━━━
    3、扩充字符串
    ━━━━━━━━━━━━━━━━━━━━━━━━━━
           “扩充”这个词汇来自于微软自己的翻译,意思就是对表示文件路径的字符串进行特殊的处理,具体功能罗列如下:
      =========================================
      ~I - 删除任何引号("),扩充 %I
      %~fI - 将 %I 扩充到一个完全合格的路径名
      %~dI - 仅将 %I 扩充到一个驱动器号
      %~pI - 仅将 %I 扩充到一个路径
      %~nI - 仅将 %I 扩充到一个文件名
      %~xI - 仅将 %I 扩充到一个文件扩展名
      %~sI - 扩充的路径只含有短名
      %~aI - 将 %I 扩充到文件的文件属性
      %~tI - 将 %I 扩充到文件的日期/时间
      %~zI - 将 %I 扩充到文件的大小
      %~$PATH:I - 查找列在路径环境变量的目录,并将 %I 扩充
      到找到的第一个完全合格的名称。如果环境变量名
      未被定义,或者没有找到文件,此组合键会扩充到
      空字符串
      可以组合修饰符来得到多重结果:
      %~dpI - 仅将 %I 扩充到一个驱动器号和路径
      %~nxI - 仅将 %I 扩充到一个文件名和扩展名
      %~fsI - 仅将 %I 扩充到一个带有短名的完整路径名
      %~dp$PATH:i - 查找列在路径环境变量的目录,并将 %I 扩充
      到找到的第一个驱动器号和路径。 
      %~ftzaI - 将 %I 扩充到类似输出线路的 DIR
      =========================================
      以上内容引用于for /?帮助信息。其中的I代表变量I,不过需要说明的是,不是所有的变量都能够进行扩充的,有两个条件:1、该字符串代表一个文件路径;2、变量要用%x来表示,x可取a-z A-Z 0-9共62个字符中的任意一个。举例说明:
      =========================================
      @echo off
      echo 正在运行的这个批处理:
      echo 完全路径:%0
      echo 去掉引号:%~0
      echo 所在分区:%~d0
      echo 所处路径:%~p0
      echo 文件名:%~n0
      echo 扩展名:%~x0
      echo 文件属性:%~a0
      echo 修改时间:%~t0
      echo 文件大小:%~z0
      pause
      =========================================
      其中的%0是批处理里面的参数,代表当前运行的批处理的完全路径。类似的还有%1-%9,分别代表传递来的第1-9个参数。例子如下:
      ===============================================
      @echo off
      set aa=C:\Windows\PPP\a.btx
      call :deal aaa %aa% "c c" ddd eee
      pause>nul
      exit
      :deal
      echo %%0 = %0
      echo %%1 = %1
      echo %%2 = %2
      echo %%3 = %3
      echo %%4 = %4
      echo %%5 = %5
      ===============================================
      其中,变量aa在之前是不可以扩充的,通过call命令并将aa作为参数传递给子函数:deal,将aa变量转换成了变量%1,即符合%x格式,从而可以进行字符串扩充。
           至于%x中x取a-z A-Z的形式,可以复习一下for语句,for语句里面的变量就是用%x来表示的,因而可以直接进行扩充。
    ━━━━━━━━━━━━━━━━━━━━━━━━━━
    4、获取字符串长度
    ━━━━━━━━━━━━━━━━━━━━━━━━━━
             通过循环截取字符串来获取,代码如下:
              =========================================
             @echo off
             set mystr=hello world
             set str=%mystr%
             ::将"号替换成空格
             set "str=%str:"= %"
             :next
             if not "%str%"=="" (
                 set /a num+=1
                 set "str=%str:~1%"
                 goto next
             )
             echo %mystr%字符串长度为:%num%
             pause
             =========================================
             运行结果:
             hello world字符串长度为:11  
    展开全文
  • Lua中获取字符串长度整理

    万次阅读 2018-10-31 22:58:41
    在Lua中,获取字符串长度我们一般使用#str(不建议使用string.len(str))! local str = "abc" local len = #str print(len) -- 3 str = "你们好" len = #str print(len) -- 9 这里就出现了一个问题:为啥"abc...
  • 25.请编写一个函数fun,它的功能是:比较两个字符串的长度,(不得调用C语言提供的求字符串长度的函数),函数返回较长的字符串。若两个字符串长度相同,则返回第一个字 符串。 例如,输入:beijing shanghai(为回车...
  • 最近在做一些程序题目,需要获取字符串长度。 有这么几个函数,却不知道区别。sizeof() 、strlen()、str.length(); (C/C++ strlen(str)和str.length()和str.size()都可以求字符串长度。 其中str.length()和str....
  • 字符串的索引从 0 开始,这意味着第一个字符索引值为 [0],第二个为 [1], 以此类推。 你可以在字符串中使用引号,字符串中的引号不要与字符串的引号...可以使用内置属性 length 来计算字符串长度字符串...
  • 汇编——字符串长度

    千次阅读 2018-03-23 00:23:47
    众所周知在字符串变量定义之后立即利用地址计数器指针符号$, $-string就得到字符串长度。string db '你的字' len_string equ $ - string但可能有小伙伴直接就拿来用了,却不知道为什么$ - string就得到字符串长度...
  • golang中获取字符串长度的办法

    千次阅读 2019-07-02 11:59:28
    1.不同字符与获取字符串长度 获取字符串长度,是字符串操作的重要方法。理论来说,获取字符串长度,只要从头到尾查找一遍就可以了。但遗憾的是,不同字符具有不同的编码格式。拉丁字母一个字符只要一个字节就行,...
  • javascript获取字符串长度

    千次阅读 2019-04-27 14:21:59
    字符串获取长度和数组一样 例: var str ="长度获取和数组获取长度一样"; var strLength = str.length; console.log(strLength)//13
  • Java判断字符串长度

    千次阅读 2019-04-25 15:35:02
    Java判断字符串长度
  • 字符串长度解析以及字符串的几种打印方法

    千次阅读 多人点赞 2018-09-16 21:28:20
    字符串 何为字符串,估计很多小伙伴都知道这个东西但不清楚它的定义,其实很简单,就一句话: 由双引号(Double Quote)引起来的一串字符称为字符串字面值(String Literal),或者简称字符串。 注意:字符串不是...
  • 字符串长度计算

    千次阅读 2015-01-11 14:26:12
    常见的获取字符串长度的方法包括如下几种。 1.使用sizeof获取字符串长度 sizeof的含义很明确,它用以获取字符数组的字节数(当然包括结束符\0)。对于ANSI字符串和UNICODE字符串,形式如下: sizeof(cs)/...
  • php 字符串长度函数

    千次阅读 2020-08-03 10:24:27
    字符串长度函数 strlen() – 返回给定的字符串 string 的长度。 返回值:成功则返回字符串 string 的长度;如果 string 为空,则返回 0。 根据面试题整理的例子: $str = 'hello'; echo strlen($str), '<br>...
  • 当字符串含有中文字符,计算字符串长度用传统方法(.length())会有问题。
  • C语言获取字符串长度的几种方法

    万次阅读 多人点赞 2020-09-02 10:50:58
    在C语言中,想要获取字符串长度可以有很多方法,下面分别介绍 一、使用sizeof()运算符 在C语言中,sizeof() 是长度的运算符,括号中可以放入数据类型或者表达式,一般我们用来计算字符串长度。 基本用法: int i=10;...
  • Java实现 蓝桥杯 算法训练 字符串长度(IO无敌)

    千次阅读 多人点赞 2020-04-13 15:15:41
    试题 算法训练 字符串长度 问题描述  输入一个字符串,输出其长度。 输入格式  输入一个字符串 输出格式  输出字符串长度 样例输入 一个满足题目要求的输入范例。 HelloWorld 样例输出 10 数据规模和约定  输入...
  • 字符串长度

    千次阅读 2018-06-15 07:11:53
    1.使用sizeof获取字符串长度sizeof的含义很明确,它用以获取字符数组的字节数(当然包括结束符\0)。对于ANSI字符串和UNICODE字符串,形式如下:sizeof(cs)/sizeof(char) sizeof(ws)/sizeof(wchar_t) 可以采用类似...
  • c#获取字符串长度

    千次阅读 2017-11-23 10:46:17
    c#获取字符串长度
  • **给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。 如:输入abcabcbb 输出3 因为无重复最长字符串是“abc” 第一次看见这个问题时网上查找发现没有竟然没有C语言实现的代码 于是自己写了代码以及思路...
  • 我先说下场景,数据库定义的长度是VARCHAR2(100),文件数据有一个字段有40个字符,UTF-8编码的非英文字符,如果在插入数据库的时候如果使用String的length()方法去获取长度大小肯定是40.这里40长度肯定是小于数据库...
  • C++字符串长度

    万次阅读 2011-08-08 16:03:37
    字符串的长度通常是指字符串中包含字符的...常见的获取字符串长度的方法包括如下几种。 1.使用sizeof获取字符串长度 sizeof的含义很明确,它用以获取字符数组的字节数(当然包括结束符\0)。对于ANSI字符串和UNICODE
  • 字符串长度

    千次阅读 2011-12-25 09:32:43
    【更新】2012-7-9,增加...这个例子是求取字符串长度,结果为5。为什么不是6呢?原因是NUL('\0')不是字符串的一部分。看看字符串的定义就明白了。 【定义】字符串就是一个零串或多个字符,并且以一个位模式为全0的NU
  • C++ 字符串长度

    千次阅读 2017-09-12 17:54:16
    刷LeetCode 657. Judge Route Circle 遇到的 求字符串长度用.size()或者.length() 不要用sizeof()
  • 字符串长度 与数组长度

    万次阅读 多人点赞 2018-12-20 18:48:37
    对于定义 char str[] = "abc\000def\n"(注:其中0为数字零),求字符串str的长度len和数组str的大小size,len和size分别是: (2分)(2) 12 ,13 3 ,11 3 ,9 3 ,4 1.数组长度的计算:整形数组大小:sizeof...
  • C++获取字符串长度

    万次阅读 2019-07-21 17:00:54
    C++获取字符串长度 strlen()函数        函数 strlen()是一个常规函数,他接受一个 C-风格字符串作为参数,并返回字符串包含的字符数。 参数必须是字符型指针(char*)。当数组名作为参数传入...
  • 求解字符串中最长对称字符串长度

    千次阅读 2012-09-01 15:26:59
    暴力法,穷举所有的子字符串,然后判断字符串是否是对称字符串,如果是,则计算出长度和当前最长的字符串比较,如果长度更长,更新结果。这种解法的时间复杂度为O(n^2)*O(n),前面的O(n^2)表示字符串的总数数量级,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,357,292
精华内容 542,916
关键字:

怎么表达字符串的长度