字符串_字符串长度 - CSDN
字符串 订阅
字符串主要用于编程,概念说明、函数解释、用法详述见正文,这里补充一点:字符串在存储上类似字符数组,所以它每一位的单个元素都是可以提取的,如s=“abcdefghij”,则s[1]=“b”,s[9]="j",而字符串的零位正是它的长度,如s[0]=10(※上述功能Ansistring没有。),这可以给我们提供很多方便,如高精度运算时每一位都可以转化为数字存入数组。 展开全文
字符串主要用于编程,概念说明、函数解释、用法详述见正文,这里补充一点:字符串在存储上类似字符数组,所以它每一位的单个元素都是可以提取的,如s=“abcdefghij”,则s[1]=“b”,s[9]="j",而字符串的零位正是它的长度,如s[0]=10(※上述功能Ansistring没有。),这可以给我们提供很多方便,如高精度运算时每一位都可以转化为数字存入数组。
信息
外文名
Character string
拼    音
zi fu chuan
简    称
串(String)
释    义
编程语言中表示文本的数据类型
中文名
字符串
记    作
s=“a1a2···an”(n>=0)
字符串简介
字符串或串(String)是由数字、字母、下划线组成的一串字符。一般记为 s=“a1a2···an”(n>=0)。它是编程语言中表示文本的数据类型。在程序设计中,字符串(string)为符号或数值的一个连续序列,如符号串(一串字符)或二进制数字串(一串二进制数字)。通常以串的整体作为操作对象,如:在串中查找某个子串、求取一个子串、在串的某个位置上插入一个子串以及删除一个子串等。两个字符串相等的充要条件是:长度相等,并且各个对应位置上的字符都相等。设p、q是两个串,求q在p中首次出现的位置的运算叫做模式匹配。串的两种最基本的存储方式是顺序存储方式和链接存储方式。
收起全文
  • 字符串

    2020-05-18 09:20:10
    字符串的定义:串是字符串的简称。在数据结构中,串是一种在数据元素的组成上具有一定约束条件的线性表,即要求组成线性表的所有数据元素都是字符,所以说串是一个有穷的字符序列。 串是由零个或多个字符组成的有限...

    字符串的定义:串是字符串的简称。在数据结构中,串是一种在数据元素的组成上具有一定约束条件的线性表,即要求组成线性表的所有数据元素都是字符,所以说串是一个有穷的字符序列。

    串是由零个或多个字符组成的有限序列,记作s=”s0s1…sn-1”(n≥0),其中s是串名,字符个数n称作串的长度,双撇号括起来的字符序列”s0s1…sn-1”是串的值。每个字符可以是字母、数字或任何其它的符号。零个字符的串(即:””)称为空串,空串不包含任何字符。值得注意的是:

    (1)长度为1的空格串" "不等同于空串"";

    (2)值为单个字符的字符串不等同于单个字符,如"a"与′a′;

    (3)串值不包含双撇号,双撇号是串的定界符。

    串中任意个连续的字符组成的子序列称为该串的子串。包含子串的串则称为主串。通常将字符在串中的序号称为该字符在串中的位置。子串在主串钟的位置则以该子串在主串中的第一个字符位置来表示。为了让大家更好的理解子串,举个简单的例子说明。如:

    s="I am from Canada.";

    s1="am.";

    s2="am";

    s3="I am";

    s4="I am ";

    s5="I am";

    s2、s3、s4、s5都是s的子串,或者说s是s2、s3、s4、s5的主串,而s1不是s的子串。s3等于s5,s2不等于s4。s的长度是17,s3的长度是4,s4的长度是5。

    串的基本算法

    串的基本算法在串的应用中广泛使用,这些基本算法不仅加深了对串的理解,更简化了日后对串的应用。下面还是通过举例介绍串的常用基本算法。

    假设有以下串:s1="I am a student",s2="teacher",s3="student",常用的串的基本运算有下列几种:

     

    串的线性存储结构和基本运算的实现

    串及其基本运算在程序中是如何实现的呢?串是在程序中比较常见的线性存储结构,也就是用一个连续的存储空间把串的每一个字符按照一定顺序存储起来。所以,在定义一个串之前,我们得先申请一个足够可以容纳字符串的空间。

    串的线性存储代码如下:

    #define MaxSize  100  /*字符串可能达到的最大长度*/

    typedef  struct

    {  char  ch[MaxSize];

       int  StrLength;

    }SeqString;

    展开全文
  • 在C语言中怎样定义一个字符串并输入输出

    万次阅读 多人点赞 2018-02-28 16:57:29
    在C语言中没有字符串类型,用字符数组处理字符串 字符数组定义:char 数组名 [常量表达式][常量表达式] 说明:一维字符数组,用于存储和处理一个字符串 。二维字符数组,用于同时存储和处理多个字符串 输入输出...

    在C语言中没有字符串类型,用字符数组处理字符串

    字符数组定义:char 数组名 [常量表达式][常量表达式]

    说明:一维字符数组,用于存储和处理一个字符串 。二维字符数组,用于同时存储和处理多个字符串

    输入输出方法:逐个字符输入输出:%c    整个字符串输入输出:%s

    一  :用scanf输入字符串,printf输出字符串

       逐个字符处理:

    #include<stdio.h>
    int main()
    {
    	char ch[5]; 
    	for (int i = 0; i < 5; i++)
    	{
    		scanf("%c", &ch[i]);
    	}
    	for (int i = 0; i < 5; i++)
    	{
    		printf("%c", ch[i]);
    	}
    	system("pause");
    	return 0;
    

      整个字符串处理:

    #include<stdio.h>
    int main()
    {
    	char ch[5];
    	scanf("%s", ch);
    	printf("%s", ch);//无需&
    	system("pause");
    	return 0;
    }

    说明:以字符串为单位处理时,直接使用数组名,无需&

               输入字符串时,字符个数要小于数组的长度,例如输入5个字符,定义的字符数组至少应该有6个元素

               输入字符串时,遇到回车或空格,输入结束,并且自动在串后面加上结束标志'\0'

               输出字符串时,遇到字符串结束标志’\0',输出结束。


              

    二  : 用字符串处理函数输入和输出       在<string.h>头文件中

        字符串输出函数puts

    格式:puts(字符数组)

    功能:向显示器输出字符串(输出完,自动换行,即用'\n'替'\0')

    说明:字符数组必须以'\0'结束

        字符串输入函数gets

    格式:gets(字符数组)

    功能:从键盘键入以回车结束的字符串放入字符数组中,并自动加’\0'

    说明:输入串长度应小于字符数组维数,字符串中可以包含空格

    #include<string.h>
    int main()
    {
    	char str[10];
    	printf("请输入字符串");
    	gets(str);
    	printf("请输出字符串");
    	puts(str);
    	system("pause");
    	return 0;
    }



    展开全文
  • 字符串字符串数组

    万次阅读 2019-03-04 13:42:04
    文章目录字符串字符串输出字符串常用方法计算字符串的长度字符串拼接字符串拷贝字符串比较字符串数组 字符串 用双引号引起来的就是字符串字符串由字符组成 字符串使用%s格式化输出 字符串以\0结尾,没有\0就不是...

    字符串

    • 用双引号引起来的就是字符串,字符串由字符组成
    • 字符串使用%s格式化输出
    • 字符串以\0结尾,没有\0就不是字符串
    • 只要是用双引号括起来的都是字符串
    • 字符串的本质就是数组
      注意: 字符串变量和普通的字符数组有一定的区别,C语言规定,字符串必须以\0结尾(作为字符串的结束符号),所以字符串变量的元素个数比字符数组的元素多一个\0
    #include <stdio.h>
    
    int main(int argc, const char * argv[]) {
        
        char name[] = "zhangsan";
        
        // %u 表示无符号,sizeof 返回的是一个无符号长整型
        printf("name --> %s  size --> %lu\n", name, sizeof(name));      // name --> zhangsan  size --> 9
        
        // 字符串本质就是一个字符数组,前提是末尾以\0结尾
        char name1[] = {'z', 'h', 'a', 'n', 'g', 's', 'a', 'n', '\0'};
        printf("name1 --> %s\n", name1);    // name1 --> zhangsan
        
        // 部分初始化中,没有被初始化的元素默认是0, \0 对应的ASCII值是 0
        char name2[9] = {'z', 'h', 'a', 'n', 'g', 's', 'a', 'n'};
        printf("name2 --> %s\n", name2);    // name2 --> zhangsan
        
        // 字符串的本质就是数组
        char name3[] = "lisi";
        printf("name3 --> %s \n", name3);   // name3 --> lisi
        name3[0] = 'x';
        printf("name3 --> %s \n", name3);   // name3 --> xisi
        
    
        return 0;
    }
    

    字符串输出

    字符串输出可以使用printf 和 puts 进行输出,各有利弊

    
    - 输出字符串
    	- 使用printf的%s占位符输出
    		- 弊端:如果想要换行,必须加上\n
    		- 优点:可以自定义格式化需要的字符串,也就是可以按照我们需要的格式来输出
    	- 使用puts函数进行输出
    		- 优点:可以自动换行
    		- 缺点:不可以自定义格式,只能原样输出
    

    // printf
    char str[] = “lisi”;
    printf(“name = %s!!!\n”, str);
    printf("-----\n");

    // puts
    // 自动换行,只能原样输出
    puts(str);
    printf("----\n");

    
    
    #### 字符串输入
    字符串输入可以使用 scanf 和 gets 进行输入,各有利弊
    
    
    • 输入字符串
      • 使用scanf的%s占位符接收键盘输入的字符串
        • scanf 接收字符串,会以空格,tab,回车作为结束符号,利用scanf接收字符串时,字符串不能出现空格,tab,回车
      • 使用gets接收字符串
    // scanf
    printf("请输入一个字符串:\n");
    char buf[10];
    scanf("%s", buf);   // 输入:fdsa fdas
    printf("buf --> %s\n", buf);    // buf --> fdsa
    
    
    // gets
    char buf[10];
    printf("请输入一个字符串,使用gets接收:\n");
    gets(buf);
    printf("buf --> %s\n", buf);    // buf --> fdsaf fdsa
    

    字符串常用方法

    计算字符串的长度
    
    #include <stdio.h>
    #include <string.h>
    
    // 申明函数
    int stringLen(char value[]);
    
    
    int main(int argc, const char * argv[]) {
        
        char string[] = "zhangsan";
        
        // 计算字符串的长度,不包括末尾\0的长度
        
        // 调用系统内置函数strlen 计算字符串的长度,需要先导入 string.h 头文件
        size_t length = strlen(string);     // lenght --> 8
        printf("lenght --> %lu\n", length);
        
        
        // 自定义计算字符串长度的函数
        int length2 = stringLen(string);
        printf("length2 --> %i\n", length2);    // length2 --> 8
        return 0;
    }
    
    // 自定义计算字符串长度的函数
    int stringLen(char value[]) {
        int count = 0;
        while (value[count] != '\0') {
            count ++;
        }
        return count;
    }
    
    
    字符串拼接

    使用内置方法strcat进行2个字符串拼接,将后者拼接到前者后面,前提是前者空余的长度要大于后者的长度,否则会报错
    使用内置方法strncat进行2个字符串拼接,可以指定将后者的前多少个字符与前者进行拼接

    // 字符串拼接
    char str1[20] = "hello";
    char str2[10] = " world";
    
    printf("str1拼接前 --> %s\n", str1);        // str1拼接前 --> hello
    printf("str2拼接前 --> %s\n", str2);        // str2拼接前 -->  world
    strcat(str1, str2);
    printf("\n");
    printf("str1拼接后 --> %s\n", str1);        // str1拼接后 --> hello world
    printf("str2拼接后 --> %s\n", str2);        // str2拼接后 -->  world
    
    // 使用 strncat 可以指定将后者的前多少个字符与前者进行拼接
    strncat(str1, str2, 3);		// 最后一个参数3表示指定str2的前多少个字符拼接到str1后面
    printf("str1拼接后 --> %s\n", str1);        // str1拼接后 --> hello world wo
    printf("str2拼接后 --> %s\n", str2);        // str2拼接后 -->  world
    
    字符串拷贝

    strcpy 函数会将源的数据拷贝到目录中,并且会覆盖掉目标中原有的数据,目标的长度必须能够存放拷贝的数据,长度不够会报错
    strncpy 函数在strcpy函数的基础之上,增加一个参数,可以指定拷贝几个字符0

    // 将str2中的内容拷贝到str1中
    char str1[20] = "hello";
    char str2[] = " world!";
    
    printf("str1 拷贝前 --> %s\n", str1);      // str1 --> hello
    printf("str2 拷贝前 --> %s\n", str2);      // str2 -->  world!
    strcpy(str1, str2);
    printf("str1 拷贝后 --> %s\n", str1);      // str1 -->  world!
    printf("str2 拷贝后 --> %s\n", str2);      // str2 -->  world!
    
    // strncpy 函数在strcpy函数的基础之上,增加一个参数,可以指定拷贝几个字符
    char str3[20] = "hello";
    char str4[] = "_world!";
    strncpy(str3, str4, 2);
    printf("str3 拷贝后 --> %s\n", str3);      // str3 拷贝后 --> _wllo
    printf("str4 拷贝后 --> %s\n", str4);      // str4 拷贝后 --> _world!
    
    字符串比较

    strcmp 会对传入的字符串进行比较,比较完毕后会返回一个整型的值

    /*
    	int result = strcmp(str1, str2)
    	如果result等于0,证明两个字符串相等
    	如果result小于0,证明str1小于str2
    	如果result大于0,证明str1大于str2
    */
    
    char str1[] = "abc";
    char str2[] = "abc";
    int result = strcmp(str1, str2);
    printf("result --> %i\n", result);  // result --> 0
    
    char str1[] = "ab1";
    char str2[] = "abc";
    int result = strcmp(str1, str2);
    printf("result --> %i\n", result);  // result --> -50
    
    char str1[] = "absadsa";
    char str2[] = "abc";
    int result = strcmp(str1, str2);
    printf("result --> %i\n", result);  // result --> 16
    

    字符串数组

    如果想存储一堆字符串可以使用字符串数组,字符串数组就是二维数组

    char names[5][20] = {
    	"zhangsan",
    	"lisi",
    	"wangwu",
    }
    
    展开全文
  • 常用的字符串处理方法

    千次阅读 2018-06-14 17:17:28
    字符串处理方法1、字符串合并操作:“ + ”var iNum01 = 12; var iNum02 = 24; var sNum03 = '12'; var sTr = 'abc'; alert(iNum01+iNum02); //弹出36 alert(iNum01+sNum03); //弹出1212 数字和字符串相加等同于字符...

    字符串处理方法

    1、字符串合并操作:“ + ”

    var iNum01 = 12;
    var iNum02 = 24;
    var sNum03 = '12';
    var sTr = 'abc';
    alert(iNum01+iNum02);  //弹出36
    alert(iNum01+sNum03);  //弹出1212 数字和字符串相加等同于字符串相加
    alert(sNum03+sTr);     // 弹出12abc
    
    注意:字符转和数字相加的字符串!

    2、parseInt() 将数字字符串转化为整数

    var sNum01 = '12';
    var sNum02 = '24';
    var sNum03 = '12.32';
    alert(sNum01+sNum02);  //弹出1224
    alert(parseInt(sNum01)+parseInt(sNum02))  //弹出36
    alert(parseInt(sNum03))   //弹出数字12 将字符串小数转化为数字整数
    
    注意:转化有小数时会把小数部分去掉取整!

    3、parseFloat() 将数字字符串转化为小数

    var sNum03 = '12.32'
    alert(parseFloat(sNum03));  //弹出 12.32 将字符串小数转化为数字小数
    

    4、split() 把一个字符串分隔成字符串组成的数组

    var sTr = '2017-4-22';
    var aRr = sTr.split("-");
    var aRr2= sTr.split("");
    
    alert(aRr);  //弹出['2017','4','2']
    alert(aRr2);  //弹出['2','0','1','7','-','4','-','2','2']
    
    注意:不出在会弹出-1!

    5、indexOf() 查找字符串是否含有某字符

    var sTr = "abcdefgh";
    var iNum = sTr.indexOf("c");
    alert(iNum); //弹出2
    

    6、substring() 截取字符串 用法: substring(start,end)(不包括end)

    var sTr = "abcdefghijkl";
    var sTr2 = sTr.substring(3,5);
    var sTr3 = sTr.substring(1);
    
    alert(sTr2); //弹出 de
    alert(sTr3); //弹出 bcdefghijkl
    

    字符串反转

    var str = 'asdfj12jlsdkf098';
    var str2 = str.split('').reverse().join('');
    
    alert(str2);

     注意:字符串反转就是用的数组的方法!

    展开全文
  • 字符串的常用方法总结

    千次阅读 2017-12-07 10:16:20
    自己在写js的时候,经常会用到的字符串的一些方法,这里总结了一下我自己常用到的方法,分享一下。 先定义一个字符串 var str = "abbcalgldkjgldgehlgjldf"; 1,indexOf(),返回指定字符创第一次出现的位置。 str...
  • 字符串内容比较 例题:键盘接收用户的名字和密码做登录功能: 如果用户名与laopei,密码0523相同就是登录成功,不同就是登录失败。 题目特点:用户输入字符串,选择比较字符串。 注意点:字符串在比较是否相等时,...
  • shell之常用编程语法

    2019-04-12 01:14:41
    数值比较6、字符串比较7.文件判断8.逻辑运算符9.date时间获取10.字符串操作11.数组12.控制语句12.1 for循环12.2while循环12.3 if条件判断12.4 case 条件选择13.函数14.awk文本扫描处理15.sed流编辑器16.计划任务1...
  • 今日主题: 条件判断语句 循环语句 一、条件判断语句 1-1.条件判断语法结构 1.条件判断语法格式 (1)格式一 test : 检测文件类型和值 ... 值为0时,表示上一条命令执行成功;...**3....1-2....4.判断字符串是否相
  • C语言基础

    2020-07-17 21:57:17
    一、数据类型及控制语句 1.C语言的注意点 面向过程 一个必有一个mian函数 ...char:字符型 1个字节 有符号 0~255​,字符型的数据在​内存中存放的是ASC码 short:短整形 2字节 -32768~32767 int:整形 32位系统下占4字
  • JavaScript基础练习题(一)

    千次阅读 2019-12-26 22:35:46
    JavaScript基础练习题(一) 注:仅供参考,不可用于其他用途 一、单选题 1、HTML页面中写JavaScript时,会用到HTML的一个标签,它是 A 、script B 、 style C 、 link ......
  • Java中的字符串及其中的常用方法

    千次阅读 2019-04-26 10:28:59
    字符串是由多个字符组成的一串数据 String的特点: 字符串是常量,一旦被创建就不能改变,这是因为字符串的值是存放在方法区的常量池里面,但是引用可以改变。 字符串字面值"ab"也可以看成是一个字符串对象。 ...
  • C语言字符串操作总结大全(超详细)

    千次阅读 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忽略...
  • 常用JS——string字符串方法

    万次阅读 2018-08-21 10:47:36
    一、关于字符串分割 1、slice(start,end); 关于这个方法,一定要搞懂四个关键点: (1)截取字符串时不包括下标为end的元素。 (2)end是可选参数,没有时,默认从start到结束的所有字符串。 (3)String....
  • C语言字符串总结

    千次阅读 2019-03-09 17:27:24
    1、字符串操作 strcpy(p, p1) 复制字符串 原型:strcpy(char destination[], const char source[]); 功能:将字符串Source拷贝到字符串destination中 例如: #include&lt;iostream.h&gt; #include&lt;...
  • str.replace(/(\r\n|\n|\r)/gm, "<br />") 举个栗子: let str = "兴趣点:↵1、与带插座圆柱体对应。↵2、逐渐引导幼儿学会自我纠错。↵3、每盒圆柱体的尺寸、颜色不同并可以混合搭建。...
  • MySQL字符串的拼接、截取、替换、查找位置

    万次阅读 多人点赞 2019-05-10 10:28:16
    MySQL字符串的拼接、截取、替换、查找位置。 常用的字符串函数: 函数 说明 CONCAT(s1,s2,...) 返回连接参数产生的字符串,一个或多个待拼接的内容,任意一个为NULL则返回值为NULL。 CONCAT_WS(x,s1,s2...
  • Python中的字符串切片(截取字符串

    万次阅读 多人点赞 2018-09-17 23:20:16
    字符串索引示意图 字符串切片也就是截取字符串,取子串 Python中字符串切片方法 字符串[开始索引:结束索引:步长] 切取字符串为开始索引到结束索引-1内的字符串 步长不指定时步长为1 字符串[开始索引:结束...
  • Java中字符串indexof() 的使用方法

    万次阅读 多人点赞 2018-12-14 09:48:50
    Java中字符串中子串的查找共有四种方法(indexof()) indexOf 方法返回一个整数值,指出 String 对象内子字符串的开始位置。如果没有找到子字符串,则返回-1。 如果 startindex 是负数,则 startindex 被当作零。如果...
  • js 字符串转换成数字的三种方法

    万次阅读 多人点赞 2014-11-03 09:08:24
    在js读取文本框或者其它表单数据的时候获得的值是字符串类型的,例如两个文本框a和b,如果获得a的value值为11,b的value值为9 ,那么a.value要小于b.value,因为他们都是字符串形式的.在网上找了一下js字符串转数字的文章...
  • C语言字符串输入及输出的几种方式

    万次阅读 多人点赞 2019-07-05 10:03:58
    1.字符串数组+初始化 char s1[]="array"; //字符数组 char s2[6]="array"; //数组长度=字符串长度+1,因为字符串末尾会自动添‘\0‘ printf("%s,%c\n",s1,s2[2]); //array,r 2.字符串指针+初始化 char *sp=...
1 2 3 4 5 ... 20
收藏数 4,323,945
精华内容 1,729,578
关键字:

字符串