精华内容
下载资源
问答
  • 批处理:替换字符串、截取字符串、扩充字符串、获取字符串长度 ━━━━━━━━━━━━━━━━━━━━━━━━━━  替换字符串,即将某一字符串中的特定字符或字符串替换为给定的字符串。举例说明其功能: ...
    批处理:替换字符串、截取字符串、扩充字符串、获取字符串长度
    
    ━━━━━━━━━━━━━━━━━━━━━━━━━━
           替换字符串,即将某一字符串中的特定字符或字符串替换为给定的字符串。举例说明其功能:
      =========================================
      @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  
    展开全文
  • 字符串长度计算

    千次阅读 2015-01-11 14:26:12
    常见的获取字符串长度的方法包括如下几种。 1.使用sizeof获取字符串长度 sizeof的含义很明确,它用以获取字符数组的字节数(当然包括结束符\0)。对于ANSI字符串和UNICODE字符串,形式如下: sizeof(cs)/...
    字符串的长度通常是指字符串中包含字符的数目,但有的时候人们需要的是 字符串所占字节的数目。常见的获取字符串长度的方法包括如下几种。
    1.使用sizeof获取字符串长度
    sizeof的含义很明确,它用以获取 字符数组的字节数(当然包括结束符\0)。对于ANSI字符串和UNICODE字符串,形式如下:
     
    1. sizeof(cs)/sizeof(char)  
    2. sizeof(ws)/sizeof(wchar_t
    可以采用类似的方式,获取到其字符的数目。如果遇到MBCS,如"中文ABC",很显然,这种办法就无法奏效了,因为sizeof()并不知道哪个char是半个字符。
    2.使用strlen()获取字符串长度
    strlen()及wcslen()是标准C++定义的函数,它们分别获取ASCII字符串及宽字符串的长度,如:
     
    1. size_t strlen( const char *string );  
    2. size_t wcslen( const wchar_t *string ); 
    strlen()与wcslen()采取\0作为字符串的结束符,并返回不包括\0在内的字符数目。
    3.使用CString::GetLength()获取字符串长度
    CStringT继承于CSimpleStringT类,该类具有函数:
     
    1. int GetLength( ) const throw( ); 
    GetLength()返回 字符而非字节的数目。比如:CStringW中,"中文ABC"的GetLength()会返回5,而非10。那么对于MBCS呢?同样,它也只能将一个字节当做一个字符,CStringA表示的"中文ABC"的GetLength()则会返回7。
    4.使用std::string::size()获取字符串长度
    basic_string同样具有获取大小的函数:
     
    1. size_type length( ) const;  
    2. size_type size( ) const
    length()和size()的功能完全一样,它们仅仅返回 字符而非字节的个 数。如果遇到MCBS,它的表现和CStringA::GetLength()一样。
    5.使用_bstr_t::length()获取字符串长度
    _bstr_t类的length()方法也许是获取字符数目的最佳方案,严格意义来讲,_bstr_t还称不上一个完善的字符串类,它主要提供了对BSTR类型的封装,基本上没几个字符串操作的函数。不过,_bstr_t 提供了length()函数:
     
    1. unsigned int length ( ) const throw( );  
    该函数返回字符的数目。值得称道的是,对于MBCS字符串,它会返回真正的字符数目。
    现在动手
    编写如下程序,体验获取字符串长度的各种方法。
    【程序 4-8】各种获取字符串长度的方法
     
    1. 01  #include "stdafx.h" 
    2. 02  #include "string" 
    3. 03  #include "comutil.h" 
    4. 04  #pragma comment( lib, "comsuppw.lib" )  
    5. 05    
    6. 06  using namespace std;  
    7. 07    
    8. 08  int main()  
    9. 09  {  
    10. 10      char s1[] = "中文ABC";  
    11. 11      wchar_t s2[] = L"中文ABC";  
    12. 12    
    13. 13      //使用sizeof获取字符串长度  
    14. 14      printf("sizeof s1: %d\r\n"sizeof(s1));  
    15. 15      printf("sizeof s2: %d\r\n"sizeof(s2));  
    16. 16    
    17. 17      //使用strlen获取字符串长度  
    18. 18      printf("strlen(s1): %d\r\n", strlen(s1));  
    19. 19      printf("wcslen(s2): %d\r\n", wcslen(s2));  
    20. 20    
    21. 21      //使用CString::GetLength()获取字符串长度  
    22. 22      CStringA sa = s1;  
    23. 23      CStringW sw = s2;  
    24. 24    
    25. 25      printf("sa.GetLength(): %d\r\n", sa.GetLength());  
    26. 26      printf("sw.GetLength(): %d\r\n", sw.GetLength());  
    27. 27    
    28. 28      //使用string::size()获取字符串长度  
    29. 29      string ss1 = s1;  
    30. 30      wstring ss2 = s2;  
    31. 31    
    32. 32      printf("ss1.size(): %d\r\n", ss1.size());  
    33. 33      printf("ss2.size(): %d\r\n", ss2.size());  
    34. 34    
    35. 35      //使用_bstr_t::length()获取字符串长度  
    36. 36      _bstr_t bs1(s1);  
    37. 37      _bstr_t bs2(s2);  
    38. 38    
    39. 39      printf("bs1.length(): %d\r\n", bs1.length());  
    40. 40      printf("bs2.length(): %d\r\n", bs2.length());  
    41. 41    
    42. 42      return 0;
    43. 43 } 
    输出结果:
    sizeof   s1:  8
    sizeof   s2:  12
    strlen(s1):  7
    wcslen(s2):  5
    sa.GetLength():  7
    sw.GetLength():  5
    ss1.size():  7
    ss2.size():  5
    bs1.length():  5
    bs2.length():  5
    展开全文
  • 求解字符串中最长对称字符串长度

    千次阅读 2012-09-01 15:26:59
    问题: 输入一个字符串,输出该字符串中对称的子字符串的最大长度。比如输入字符串“google”,由于该字符串里最长的对称子字符串...这种解法的时间复杂度为O(n^2)*O(n),前面的O(n^2)表示字符串的总数数量级,后面的O

    问题:

    输入一个字符串,输出该字符串中对称的子字符串的最大长度。比如输入字符串“google”,由于该字符串里最长的对称子字符串是“goog”,因此输出4。

    分析:

    暴力法,穷举所有的子字符串,然后判断字符串是否是对称字符串,如果是,则计算出长度和当前最长的字符串比较,如果长度更长,更新结果。这种解法的时间复杂度为O(n^2)*O(n),前面的O(n^2)表示字符串的总数数量级,后面的O(n)一个字符串判断是否对称所花的时间。

    考虑使用另外的算法,这也是参考《剑指offer》。每次选择一次字符,往字符两端进行扩展,扩展过程中,比较最左边和最右边的字符是否相等,这里注意存在奇数和偶数问题。

    算法代码如下:

    #include <iostream>
    #include <cstdio>
    using namespace std;
    
    int max_symmetric(char *string)
    {
    	if(string == NULL)
    		return -1;
    
    	char * first;	//左指针
    	char * last;	//右指针
    	char * pchar;	//字符串中字符的位置
    	int max_length = 1;
    
    	pchar = string;
    	while(*pchar != '\0')	//退出条件,
    	{
    		first = pchar - 1;
    		last = pchar + 1;
    		//奇数情况下
    		while(first >= string && *last != '\0' && *first == *last)
    		{
    			first--;
    			last++;
    		}
    		if(last - first - 1 > max_length)
    			max_length = last - first - 1;
    
    		first = pchar;
    		last = pchar + 1;
    		//偶数情况下
    		while(first >= string && *last != '\0' && *first == *last)
    		{
    			first--;
    			last++;
    		}
    		if(last - first -1 > max_length)
    			max_length = last - first - 1;
    
    		pchar++;
    	}
    
    	return max_length;
    }
    
    int main()
    {
    	char str[] = "1a1";
    	cout << max_symmetric(str) <<endl;
    
    	return 0;
    
    }

    总结:

    这里代码还是比较好理解,记得分类讨论奇数和偶数问题。

    PS:看到这题,有时会想到先反转字符串,然后比较原字符串和反转字符串之间的最大公共子串,但这种方法存在缺陷,比如字符串"abcdba",最长对称字符串应该是1,但是用上述方法求解,结果会是2,不正确。

    展开全文
  • C语言——求字符串长度

    千次阅读 2019-01-29 22:16:14
    求一个长度不大于100的字符串的长度,要求不使用strlen方法,通过自定义的函数实现字符串长度的计算。  函数定义为:int GetStrLen(char *pStr) Input 一行字符串,使用gets(str)方法读取此行字符串。 Output ...

    Description  

    求一个长度不大于100的字符串的长度,要求不使用strlen方法,通过自定义的函数实现字符串长度的计算。 
    函数定义为:int GetStrLen(char *pStr)

    Input  

    一行字符串,使用gets(str)方法读取此行字符串。

    Output  

    输出只有一行,只包含一个整数,表示字符串的长度。

    Sample Input  


    I love Beijing.


    Sample Output  


    15

    #include<stdio.h>
    #include<string.h>
    int GetStrLen(char *pStr);
    
    int main(){
    	int n=0;
    	char a[1000];
    	gets(a);
    	n=GetStrLen(a);
    	printf("%d\n",n);
    }
    int GetStrLen(char *pStr){
    	int i;
    	for(i=0;pStr[i]!='\0';i++);
    	return i;
    }
    
    

     

    展开全文
  • 假设有一串字符,如果想要截图2个特定字符串中间的字符串怎么办,比如: str="name=3?age=3...."(省略号表示字符串后面可能还要未知的东西),取age的值
  • C++字符串长度

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

    万次阅读 多人点赞 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++ string类型的字符串长度获取的三种方法

    万次阅读 多人点赞 2018-01-21 20:43:44
    用string的成员方法length()获取字符串长度  length()比较直观,表示的就是该字符串的长度。 [cpp] view plain copy  print? #include  #include    using namespace std;  ...
  • 数组、字符串长度的计算

    千次阅读 2018-11-12 19:35:55
    strlen():主要负责计算字符串长度。 (1)sizeof():数组占用字节除以数组类型所占字节,结果为数组元素个数 使用方法:sizeof(数组名)/ sizeof(数组类型名) (2)strlen():strlen,求字符串有效...
  • c++获取字符串长度的方法

    千次阅读 2013-10-23 12:04:21
    常见的获取字符串长度的方法包括如下几种。后面有源码和最终效果图  1.使用sizeof获取字符串长度  sizeof的含义很明确,它用以获取字符数组的字节数(当然包括结束符0)。对于ANSI字符串和UNICODE字符串,...
  • C语言:用指针求字符串长度

    万次阅读 2018-10-20 21:12:39
    //用指针求字符串长度 int My_strlen(char *src) { int len = 0; while(*src++ != '\0')// { len++; //src = src+1;//如果while循环中不加src++,可以加这两个语句 //src++; } r...
  • js中的字符串长度

    千次阅读 2015-12-29 11:08:45
    众所周知String对象的length属性能够返回字符串长度,不管字符是单字节还是双字节,都作为一个长度单位来计算。因此要准确的获取字符长度,必须通过手工来写。 下面介绍两种方式: 1、循环遍历字符串,根据字符...
  • mysql中 char(n) ,varchar(n) 中n表示字符串的最大长度(最大字符数,不是字节数)。 一个汉字占三个字节,一个字母或数字只占一个字节。 如一个vhachar(6)的字段最多可以插入6个汉字,或6个字母,或6个数字。 如果...
  • 获取C/C++字符串、字符数组长度

    万次阅读 多人点赞 2018-03-26 21:18:24
    在C/C++中常用的获取字符串长度或者字符串数组长度的函数有 sizeof() length() strlen() size() 其中strlen(str)和str.length()和str.size()都可以用来求字符串的长度 str.length()和str.size()是用于求...
  • 计算字符串长度函数大全

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

    万次阅读 2019-05-11 01:15:32
    在Java中,要获取字符串长度,可以使用 String 类的 length() 方法,其语法形式如下: 字符串名.length(); 例:在学生信息管理系统中对管理员密码有这样的规定,即密码长度必须大于 6 位且小于 12 位。因为密码...
  • C中计算字符串长度

    千次阅读 2019-05-14 10:56:13
    1.除了使用strlen()函数,和定义指针推移计算之外的字符串长度计算 #include <stdio.h> #include <stdlib.h> int fun(char *s) { char *t=s; while(*t++); t--; return(t-s); } int main() { ...
  • C++常用字符串长度计算函数

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

    千次阅读 2016-05-30 20:25:36
    用string的成员方法length()或者size()都可以取得字符串长度 #include  #include  using namespace std; int main() { string str = "Test string"; cout  str.length()  endl; cout  str.size...
  • C语言计算字符串长度的几种方法

    万次阅读 多人点赞 2016-04-19 23:20:10
    C语言计算字符串长度的几种方法
  • 用sizeof和strlen来度量字符串所占字节数和字符串长度的测试Printf(“%ld %ld\n”, sizeof(test), strlen(test));Char *test1 = “nihao”; //85Char test2[] = “nihao”; //65Char test3[20] = “nihao”; ...
  • 获取字符串长度的几种办法

    千次阅读 2013-05-30 15:20:56
    常见的获取字符串长度的方法包括如下几种。 1.使用sizeof获取字符串长度 sizeof的含义很明确,它用以获取字符数组的字节数(当然包括结束符0)。对于ANSI字符串和UNICODE字符串,形式如下: sizeof
  • 前言 我们在日常工作中,对于求字符串操作在shell脚本中...【方法一】:利用${#str}来获取字符串长度 【方法二】:利用awk的length方法 备注:  1) 最好用{}来放置变量  2) 也可以用length($0)来统计文件...
  • 常用字符串长度计算函数

    千次阅读 2011-03-31 20:36:00
    常见的获取字符串长度的方法包括如下几种。 1.使用sizeof获取字符串长度sizeof的含义很明确,它用以获取字符数组的字节数(当然包括结束符/0)。对于ANSI字符串和UNICODE字符串,形式如下:  sizeof(cs)/...
  • 1.fn:contains 判断字符串是否包含另外一个字符串 (name,searchString)}">  2.fn:containsIgnoreCase 判断字符串是否包含另外一个字符串(大小写无关) test="${fn:containsIgnoreCase(name,searchString)}">...
  • php 字符串长度的解释

    千次阅读 2016-07-22 00:27:11
    在php中,函数strlen()返回字符串长度,实际上是计算得到字符串所占的字节长度,在不同的编码下,字符串所占的字节长度是不同的。 列举几个常用的字符编码占用字节情况: ASCII码:一个ASCII码就是一个字节 UTF...
  • 字符串长度控制输出

    千次阅读 2019-02-01 20:39:18
    原样输出字符串: printf("%s", str); 这里有个小坑: char a[5][10]; ...... cout &lt;&lt; a[0] &lt;&lt; endl; 这里输出的不是a[0][0]–a[0][9]的10个字符,而是a[0][0]–a[5][10]...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 763,907
精华内容 305,562
关键字:

如何表示字符串的长度