A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Mal 中级黑马   /  2015-7-24 21:57  /  848 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

//------------------字符数组的引用
以字符串的形式输入和输出

使用的格式字符串为“%s”,表示输入、输出的是一个字符串。

%s 从给定的地址开始,输出字符直到遇到\0结束


注意在本例的printf函数中使用的%s,输出表列中给出 数组名 则可。
不能写为:printf("% s",c[]);

对一个字符数组,如果不作初始化赋值,则必须说明数组长度。

当用scanf函数输入字符串时,字符串中不能含有空格,否则将以空格作为串的结束

注意点:输入的长度要小于数组定义的长度。




//-----------------------字符串结束符
1)字符数组初始化时没有使用 '\0'

先定义的变量存放在内存高地址,后面定义变量放在内存低地址

用字符串方式赋值比用字符逐个赋值要多占一个字节, 用于存放字符串结束标志'\0'。

char ch[] = {'a','b','c','\0'};

char ch2[]= {"abc"};

关于字符串长度,如果在定义的没有规定字符串数组长度,则看元素个数,若规定了,则数组长度则是字符串长度.

//----------------------字符串长度计算方法
以“\0”为字符串结束条件进行统计
1)不知道数组长度的时候,计算字符串的长度


2)已知数组长度,但是不知道数组中实际存放了多少个字符

while实现strlen();

while(ch[i-1] != '\0')

abc\0cde

sizeof计算字符串长度-->char ch[] = "abab/0bbc"以内的所有字符长度  9

注意初始化定义的字符串数组的长度  char[10] = "abc"     10


strlen计算字符串长度-->  \0前的所有字符长度
char[10] = "abc"   3
不包含 \0




//---------------------字符数组和普通数组区别
实际上,字符数组和普通数组一样,没有本质区别。 int a[10],char ch[10]

1)字符数组的每个元素都是char类型,整型数组的每个元素都是int类型。

2)scanf() 和 printf() 函数有一种格式化字符串 %s 可以用来整体输入输出字符数组,但是没 有特定的格式支持 int 数组整体数组输出。

3)字符数组 ,初始化 char str[]="aab";

整形数组,初始化不能去掉大括号

数组名永远是一个指针,指向第一个元素的地址,即数组首地址。


//-------------------------字符串函数
#include <string.h>

1、字符串输出函数 puts 格式: puts(字符数组名 或者 元素地址) 功能:把字符数组中的字符串输出到显示器。

会自动换行,但是不可以格式化输出

2、字符串输入函数 gets 格式: gets (字符数组名) 功能:从标准输入设备键盘上输入一个字符串。

不以空格为字,而以回车作为输入结束,但是依旧不是很安全

3、字符串连接函数 strcat 格式: strcat(字符数组名1,字符数组名2)
功能:把字符数组2中的字符串连接到字符数组1 中字符串的后面,并删去字符串1后的串标志 “\0”。本函数返回值是字符数组1的首地址。

要注意的是,字符数组1应定义足够的长度,否则不能全部装入被连接的字符串。

//---------------------------------------------------------

4、字符串拷贝函数strcpy
格式: strcpy(字符数组名1,字符数组名2) 功能:把字符数组2中的字符串拷贝到字符数组1中。
要求字符数组1应有足够的长度

5、字符串比较函数strcmp
格式: strcmp(字符数组名1,字符数组名2) 功能:按照ASCII码顺序比较两个数组中的字符串,并由函数返回值返回比较结果。

字符串1=字符串2,返回值=0; 字符串1>字符串2,返回值>0; 字符串1<字符串2,返回值<0。

本函数也可用于比较两个字符串常量,或比较数组和字符串常量。

6、测字符串长度函数strlen 格式: strlen(字符数组名)
功能:测字符串的实际长度(不含字符串结束标志'\0')并作为函数返回值。

4 个回复

倒序浏览
谢谢很受用!!!
回复 使用道具 举报
整形数组,初始化不能去掉大括号
回复 使用道具 举报
雁过留声,人过留名
回复 使用道具 举报
楼主用心了,辛苦总结,很有用!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马