c语言 字符串 是什么

再说的通俗一些。。... 再说的通俗一些。。 展开
 我来答
ycdjb666
2011-12-07 · 超过18用户采纳过TA的回答
知道答主
回答量:98
采纳率:0%
帮助的人:52.1万
展开全部
写多了 Java 代码,对 String 类 很是喜爱,可惜经典的 C 语言没有。。。最近在做程序过程中,发现对C语言字符串的处理很模糊,一会儿用数组,一会儿用指针,一会儿又引入 string.h。。。于是决定总结一下C语言中字符串的处理,一则作为笔记,二则作为技术交流和大家分享。

  1.字符串字面量(字符串常量,在C标准中称为,字符串字面量)

  如何存储字符串字面量

  从本质上而言,C语言把字符串字面量作为字符数组来处理。当C语言编译器在程序中遇到长度为n的字符串字面量时,它会为字符串字面量分配长度为n+1的内存空间,在末尾增加一个额外的字符——空字符(\0)。

  字符串字面量的操作

  通常情况下可以在任何C语言允许使用 char * 指针的地方使用字符串字面量。如:

  char *p;p = "abc";这个赋值操作不是复制 "abc" 中的字符,而仅仅是使 p 指向字符串的第一个字符。

  2.字符串变量

  一些编程语言为声明字符串提供了特殊的 string 类型。C语言采取了不同的方式:只要保证字符串是以空字符串结尾的,任何一维的字符数组都可以用来存储字符串。如果编写自己的字符串处理函数,请千万注意要正确地处理空字符。

  假设需要变量用来存储最多80个字符的字符串。既然字符串会在末尾处需要空字符,那么要声明的变量是含有81个字符的数组。

  #define STR_LEN 80/* 惯用法 */char str[STR_LEN + 1];对宏加一的这种方法是C程序员常用的方式。

  初始化字符串变量

  char date1[8] = "June 14";date1: | J | u | n | e | | 1 | 4 | \0 |

  char date2[9] = "June 14";date2: | J | u | n | e | | 1 | 4 | \0 | \0 |

  大体上来说,这种行为与C语言处理数组初始化的方法一致。

  字符串变量的声明可以忽略它的长度。这种情况下,编译器会自动计算长度:

  char date3[] = "June 14";编译器为date3分配8个字符的空间。

  字符数组与字符指针

  一起来比较一下下面两个声明:

  char date[] = "June 14";它声明date是个字符数组。和这个声明相似的是下面这个声明:

  char *date = "June 14";它声明date是个指向字符串字面量的指针。

  [注意],不能错误地认为上面两种date可以互换。两者之间有着显著的差异:

  (1) 在声明为数组时,就像任意数组元素一样,可以修改存储在date中的字符。在声明为指针时,date指向字符串字面量。

  (2) 在声明为数组时,date是数组名。在声明为指针时,date是变量,这个变量可以在程序执行期间指向其他字符串。

  如果需要可以修改的字符串,那么就要建立字符数组来存储字符串。这时声明指针变量是不够的。下面的声明使编译器为指针变量分配了足够的内存空间:

  char *p;可惜的是,它不为字符串分配空间。在使用p作为字符串之前,必须把p指向字符串数组。一种可能是把p指向已经存在的字符串变量:

  char str[STR_LEN + 1], *p;p = str;

  现在p指向了str的第一个字符,所以可以把p作为字符串使用了。
叁生万物
2015-10-17 · TA获得超过6259个赞
知道小有建树答主
回答量:2871
采纳率:41%
帮助的人:1026万
展开全部
字符 就是 键盘上的单个符号, 像 a,b,c,d.. 1,2,3,4,8....以及一些特殊的符号,
字符串 就是字符组成的串, 比如你名字的拼音就可以看做一个字符串,它是有长度的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
靓丽还清湛的标兵5177
2011-12-07 · TA获得超过1649个赞
知道小有建树答主
回答量:1032
采纳率:100%
帮助的人:987万
展开全部
是以\0为结尾的字符序列,其占用的空间又与定义的数组不完全相同,如:
char p[100] = "this is a string";
字符数组长度定义的是100
而串长只是16(不包括结束符\0的字符长度)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tattackor
2015-11-06 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:890万
展开全部
1、符串或串(String)是由零个或多个字符组成的有限序列。一般记为 s='a1a2•••an'(n>=0)。它是编程语言中表示文本的数据类型。
2、通常以串的整体作为操作对象,如:在串中查找某个子串、求取一个子串、在串的某个位置上插入一个子串以及删除一个子串等。两个字符串相等的充要条件是:长度相等,并且各个对应位置上的字符都相等。设p、q是两个串,求q在p中首次出现的位置的运算叫做模式匹配。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式