字元串赋值

字元串赋值字元串主要用于编程 , 概念说明、函式解释、用法详述见正文 , 这里补充一点:字元串在存储上类似字元数组 , 所以它每一位的单个元素都是可以提取的 , 如s=“abcdefghij” , 则s[1]=“a” , s[9]="j" , 而字元串的零位正是它的长度 , 如s[0]=10(※上述功能Ansistring没有 。) , 这可以给我们提供很多方便 , 如高精度运算时每一位都可以转化为数字存入数组 。但是字元串赋值有一定要求 , 例如C语言的运算符根本无法操作字元串 。在C语言中把字元串当作数组来处理 , 因此 , 对字元串的限制方式和对数组的一样 , 特别是 , 它们都不能用C语言的运算符进行複製和比较操作 。
基本介绍中文名:字元串赋值
外文名:String assignment
性质:字元串的赋值方式
表现形式:数组或指针
套用学科:C语言、C++等程式语言
领域:计算机、电信等领域
字元串简介定义字元串或串(String)是由数字、字母、下划线组成的一串字元 。一般记为 s=“a1a2···an”(n>=0) 。它是程式语言中表示文本的数据类型 。在程式设计中 , 字元串(string)为符号或数值的一个连续序列 , 如符号串(一串字元)或二进制数字串(一串二进制数字) 。通常以串的整体作为操作对象 , 如:在串中查找某个子串、求取一个子串、在串的某个位置上插入一个子串以及删除一个子串等 。两个字元串相等的充要条件是:长度相等 , 并且各个对应位置上的字元都相等 。设p、q是两个串 , 求q在p中首次出现的位置的运算叫做模式匹配 。串的两种最基本的存储方式是顺序存储方式和连结存储方式 。表示方式正确定义:char[]={‘c’,’c’,’c’};或char[4]={‘c’,’c’,’c’};需要注意下列问题:1.char[]={“cc”};如果使用这种定义方法 , 则数组长度必须大于字元串的长度 , 至少大1 。当然也可以不指定数组长度;例如:char[3]={“str”}char[3]=”ccc”;以上这两种 , 错误定义 , 系统会报错 , 字元溢出 。2.char[3]={‘c’,’c’,’c’};这种定义方法 , 系统不会报错 , 但最后的输出会出现乱码 。常用函式字元串输入函式:函式格式功能gets()gets(字元数组)从键盘输入一以回车结束的字元串放入字元数组中 ,  并自动加'\0'scanf()scanf("%s", 字元数组)从键盘输入一以空格或回车结束的字元串放入字元数 组中 , 并自动加'\0'字元串输出函式函式格式功能puts()puts(字元串地址)向显示器输出字元串(输出完 , 换行)printf()printf("%s", 字元串地址)依次输出字元串中的每个字元直到遇到字元'\0'('\0'不会被输出)字元串的长度函式格式功能strlen()strlen(字元串地址)计算字元串长度 , 返回字元串实际长度 , 不包括'\0'在内字元串的複製函式格式功能strcpy ()strcpy (字元数组1,字元串2)将字元串2拷贝到字元数组1中去 , 返回字元数组1的首地址strncpy ()strncpy (字元数组1, 字元串2, 长度n)将字元串1前n个字元的子串与字元串2前n个字元的子串进行比较字元串的比较函式格式功能strcmp ()strcmp (字元串1, 字元串2)比较两个字元串 , 对两串从左向右逐个字元比较(ASCII码) , 直到遇到不同字元或'\0'为止stricmp()stricmp(字元串1, 字元串2)同strcmp , stricmp在比较两个字元串时不区分大小写 , 而strcmp则区分大小写strncmp ()strncmp (字元串1, 字元串2, 长度n)将字元串1前n个字元的子串与字元串2前n个字元的子串进行比较上述为几种常见的字元串的函式 。字元串赋值方式C语言中 , 字元串的表现形式有两种:一种是以字元数组的形式 , 如char str[20]="I love china";另一种是以字元指针的形式 , 如char *str="I love china" 。字元串可以赋值给字元指针变数 , 或者将字元串用字元数组保存 。因为c语言没有直接对字元串提供语法糖方面的支持 。而且C标準库很多方法处理字元串是以空字元结尾为前提的 , 这个必须要记住 。char *p,a='5';p=&a;                     //显然是正确的 , p="abcd";              //但为什幺也可以这样赋值??