C语言数组的问题

问:在C语言里有字符数组的说法,我想问的是那有没有字符串数组这个说法呢?

定义一个字符数组:char c1{5}={"china"},我对这个数组赋值,对吗?
这里的5对吗?如果是6呢?

在C语言里有很多字符处理函数,如strcat函数(字符串连接函数),strcpy函数(字符串复制函数),……我想问C语言里规定这些函数有什么作用啊?

问:字符'\0'和字符‘ ’有什么区别啊?(第二个字符是个空格字符)
先悬赏50分,回答好的,我有追加分数的。

在C语言里有字符数组的说法,我想问的是那有没有字符串数组这个说法呢?
答:c语言因为没有字符串类型(c++里有),所以c语言处理字符串的时候,需要把字符串中的字符存到一个数组里头,借助数组这个工具来对字符串进行一系列的处理。那么怎末标识一个字符串呢,记住,字符串必须是以空字符结尾的。空字符是'\0'。有的时候也可以用ch==null?来判断一个字符是不是空字符。

为什么要用空字符结尾? 因为一些处理字符串的工具函数要依赖这个结尾才来正确识别字符串,才能为进一步的处理做准备。这些字符串处理函数就是你列出的:strcat函数(字符串连接函数),strcpy函数(字符串复制函数)。具体他们是什么作用,我想你去看书本会得到易懂而且更详细的答案。推荐(21天学会c语言 这本书)

附:
如果在c里头要跟字符串数组能搭上边的,就是声明一个二维数组,二维数组的每一维都是一个一维字符数组。那么这个二维数组就可以充当“字符串数组”的功能了。
如:int ch[2][20]={{"i love "},{"i love you"}};
另外,借助字符数组来处理字符串,是一种,还有一种是通过动态分配内存在处理字符串。

定义一个字符数组:char c1{5}={"china"},我对这个数组赋值,对吗?
这里的5对吗?如果是6呢?
答:你是对这个字符数组赋值,准确的说你是在定义一个数组并对她初始化。这里的5不对,应该是6,因为字符串必须得是以空字符结尾,当然你也可以不用,但基本上没人回这么做。因为这么做了,你就无法使用处理字符串的工具函数了。

在C语言里有很多字符处理函数,如strcat函数(字符串连接函数),strcpy函数(字符串复制函数),……我想问C语言里规定这些函数有什么作用啊?
答:答一里头说了,这里就不重复了。

问:字符'\0'和字符‘ ’有什么区别啊?(第二个字符是个空格字符)
答:首先他们都是一个字符,区别是:一个是空字符,一个是空格字符,它们在ascii码是不一样的,是两个完全不同的字符。
空字符是空白字符的一种,属于特殊字符。enter,tab 都属于空白字符。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-08-01
不对,应该写成:
char c1{6}="china",得留一个'\0'的位置,如果非得用5,那就这样char c1{5}={'c','h','i','n','a'},
'\0'是指ASCII为0值的字符,也就是不存在的字符,而' '是字符空格,其ASCII是32。
第2个回答  2008-08-01
有字符串数组这一说法.
char c1{5}={"china"},错的,
应该是char c1[6]="china",或者是 char c1[5]={'c','h','i','n','a'}, 因为字符串有一个结束符,在分配内在的时候会自动加载,所以china这是五个字符,要再加一个结束符'\0'.
strcat函数(字符串连接函数),strcpy函数(字符串复制函数)
这是为了方便程序员编写特定的程序.
'\0'是字符串结束符,''是空字符,也就是说程序在遇到'\0'时会结束,但是在碰到''时不会,除非有特别的规定或者是特别语句.
从ASCII上有这样的区别:'\0'是指ASCII为0值的字符,也就是不存在的字符,而' '是字符空格,其ASCII是32
第3个回答  2008-08-01
你对数组声明是错误的
数组声明是这样的char c1[6]={"China"};这里为什么要用6呢。。因为还有个/0字符占一个位置。还有那个大括号可以不要。。但是写上也没有错误。。
strcat函数是连接函数就是把2个字符串连接成一个字符串。。
而strcpy是复制函数。。
使用方法是这样的。。
strcat(字符串1或者指针1这个目标也是他,被拷贝字符2或者指针2);
strcpy(目标字符数组,被复制字符串。)
这些函数方便了文字处理。。
问:字符'\0'和字符‘ ’有什么区别啊?(
他们都是一个字符。区别在于。前面的'/0'可以做字符串结尾的标志。而' '不能
第4个回答  2008-08-08
有字符串数组这个说法
首先这个赋值应该是这样:char c1[] = "china";
至于那些字符串处理函数是方便用户调用的,实际上这些函数我们自己也可以写
但是不用白不用,我们自己就不用去写了

'\0'是一个字符串结束的标志,而空格本身就是个字符。