字符串_字符串替换 - 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",
    }
    
    展开全文
  • 字符串的常用方法总结

    千次阅读 2017-12-07 10:16:20
    自己在写js的时候,经常会用到的字符串的一些方法,这里总结了一下我自己常用到的方法,分享一下。 先定义一个字符串 var str = "abbcalgldkjgldgehlgjldf"; 1,indexOf(),返回指定字符创第一次出现的位置。 str...

    自己在写js的时候,经常会用到的字符串的一些方法,这里总结了一下我自己常用到的方法,分享一下。

    先定义一个字符串 var str = "abbcalgldkjgldgehlgjldf";

    1,indexOf(),返回指定字符创第一次出现的位置。

    str.indexOf('a') //结果是0

    2,lastIndexOf(),返回指定字符串最后一次出现的位置。

    str.lastIndexOf('f') //结果是22

    3,substring(),提取字符串中两个指定索引号之间的字符(两个索引不能为负值)

    str.substring(0,5) //结果是abbca

    4,slice(),提取字符串中两个指定索引号之间的字符(索引可以为负值,-1就是倒数第二位)

    str.slice(0,-5) //结果是abbcalgldkjgldgehl

    5,charAt(),返回指定索引的字符

    str.charAt(1) //结果是b


    6,concat(),连接两个或多个字符串,返回连接后的新字符串。

    var str2 = "1";
    str.concat(str2) //结果是abbcalgldkjgldgehlgjldf1

    7,split(),把字符串分割为子字符串数组

    str.split() //结果是["abbcalgldkjgldgehlgjldf"]


    8,toString(),返回字符串对象,比如把数字转换成字符串对象。


    9,trim(),移除字符串首位空格,经常在对input和textarea的值做判断时用到。


    10,toLowerCase(),把字符串转换成小写的。


    11,toUpperCase(),把字符串转换成大写的。


    12,match(),找到一个或者多个子串或者正则表达式的匹配。


    13,replace(),替换指定子串或者与正则表达式匹配的子串。


    14,search(),检索指定子串或者与正则表达式匹配的值,返回的值是数字。

    我个人常用的就前面几个,后面的一些不怎么用,有兴趣的朋友可以深入研究一下,方法还有其他的,这里就不列举了。

    展开全文
  • 常用的字符串处理方法

    千次阅读 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 数字和字符串相加等同于字符...
  • JDK1.7 及之后版本的 JVM 已经将运行时常量池从方法区中移了出来,在 Java 堆(Heap)中开辟了一块区域存放运行时常量池。 JDK1.8开始,取消了Java方法区,取而代之的是位于直接内存的元空间(metaSpace)。...
  • 字符串 & 堆 & 方法区

    2020-09-17 23:48:27
    字符串 & 堆 & 方法区 1. 问题引入 package com.learn.java; /** * @author xzy * @date 2020-09-17 22:33 * 说明:字符串 & 堆 & 方法区 */ public class Main { public static String s = ...
  • 看图,看图,看图
  • Java中的字符串及其中的常用方法

    万次阅读 2019-04-26 10:28:59
    字符串是由多个字符组成的一串数据 String的特点: 字符串是常量,一旦被创建就不能改变,这是因为字符串的值是存放在方法区的常量池里面,但是引用可以改变。 字符串字面值"ab"也可以看成是一个字符串对象。 ...
  • 常用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;...
  • c++字符串的插入与删除操作

    万次阅读 多人点赞 2017-10-27 16:29:24
    一、字符串的插入 字符串的插入用到的是string的insert函数。 先从最常用的开始 (1)在字符串s1的第pos个位置前 插入字符串s2 s1.insert( pos,s2); (2)在字符串s1的第pos个位置前 插入字符串s2的从begin...
  • Oracle中字符串截取最全方法总结

    万次阅读 多人点赞 2020-06-08 09:18:23
    substr 函数:截取字符串 语法:SUBSTR(string,start,[length]) string:表示源字符串,即要截取的字符串。 start:开始位置,从1开始查找。如果start是负数,则从string字符串末尾开始算起。 length:可选项...
  • C语言 16行代码实现字符串中指定字符串替换

    万次阅读 多人点赞 2020-07-20 18:11:20
    支持: 1.等长字符串替换 2.长字符串替换为短字符串 3.短字符串替换为长字符串 4.中文替换 .../* 功 能:将str字符串中的oldstr字符串替换为newstr字符串 * 参 数:str:操作目标 oldstr:被替换者...
  • python 去除字符串中指定字符

    万次阅读 多人点赞 2020-08-23 21:10:49
    python中的strip()可以去除头尾指定字符 ss = '我的电话是18827038663,也是微信号,\n 请加入,谢谢\n\n\n' print(ss.strip('\n')) 结果: 我的电话是18827038663,也是微信号, 请加入,谢谢 可以看到只能...
  • c语言比较两个字符串是否相等strcmp

    万次阅读 多人点赞 2020-02-15 20:06:39
    C语言提供了几个标准库函数,可以比较两个字符串是否相同。以下是用strcmp()函数比较字符串的一个例子: #include #include int main(void) { char str_1[] = "abc"; char str_2[] = "abc"; char str_3[] = ...
  • MySQL字符串的拼接、截取、替换、查找位置

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

    万次阅读 多人点赞 2019-03-14 10:21:10
    分享一个大牛的人工智能教程。... * 对于一个字符串"abc"输出它的全排列,第一个字符应该分别为a,b,c;第二个字符,后面应该是除去已输出部分的剩余部分的全排列。 * * 即对于"abc", *...
  • 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=...
  • MySQL——字符串拆分(含分隔符的字符串截取)

    万次阅读 多人点赞 2018-08-14 16:48:25
    有分隔符的字符串拆分 题目要求 数据库中 num字段值为: 实现的效果:需要将一行数据变成多行 实现的SQL SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('7654,7698,7782,7788',',',help_topic_id+1),',',...
1 2 3 4 5 ... 20
收藏数 4,588,162
精华内容 1,835,264
关键字:

字符串