null第七章 第七章 字符数组和字符串
目标目标理解字符数组
理解字符串常量
理解字符串常量和字符常量的区别字符数组字符数组char a='W';
char b='a';
char c='n';
char d='g';
char e='L';
char f='i';如何让程序存储我的姓名?Wang Lichar name[15]={ 'W', 'a', 'n', 'g', 'L', 'i'}; 用若干个字符用字符数组用字符串字符数组字符数组字符数组:用来存放字符数据的数组是字符数组。 字符数组可按如下方式声明并初始化:
char name[6]={ 'W', 'a', 'n', 'g', 'L', 'i'};
char name[ ]={ 'W', 'a', 'n', 'g', 'L', 'i'};字符数组字符数组字符数组可按如下方式输出: char a[5]={'h','e','l','l','o'};
int i;
for(i=0;i<5;i++)
{
printf("%c",a[i]);
}字符串与字符数组字符串与字符数组字符串:用” ”括起来的一系列字符
在C语言中,将字符串作为字符数组来处理,C语言规定了一个"字符串结束标志",以字符'\0'代
。 字符串可按如下方式声明并初始化:
char name[7]={ 'W', 'a', 'n', 'g', 'L', 'i', '\0'};
char name[7] = "WangLi";
char password[] = "12345678";手工加入一个空字符系统将自动加入一个空字符省略数组大小,系统自动计算,大小为后面的字符总数加1,最后一个元素存入一个空字符。 字符串常量与字符常量字符串常量与字符常量字符串常量和字符常量是不同的量。它们之间主要有以下区别:
1.字符常量由单引号括起来,字符串常量由双引号括起来。 2.字符常量只能是单个字符,字符串常量则可以含一个或多个字符。 3.可以把一个字符常量赋予一个字符变量,但不能把一个字符串常量赋予一个字符变量。在C语言中没有相应的字符串变量。但是可以用一个字符数组来存放一个字符串常量。 4.字符常量占一个字节的内存空间。字符串常量占的内存字节数等于字符串中字节数加1。增加的一个字节中存放字符“\0”。这是字符串结束的标志。例如,字符串 “C program”在内存中所占的字节为:C program\0。
5.字符常量'a'和字符串常量"a"虽然都只有一个字符,但在内存中的情况是不同的。 'a'在内存中占一个字节,可表示为:a "a"在内存中占二个字节,可表示为:a\0字符串I/0函数3-1字符串I/0函数3-1char name[10];scanf("%s", name);printf("%s", name);格式描述串中使用转换字符串“%s”Wang LiWang字符串I/0函数3-2字符串I/0函数3-2char name[10];
gets(name);
puts(name);Wang LiWang Li从键盘上读入一个完整的行,存入字符数组name。并用空字符‘\0’取代行尾的换行符‘\n’。(输出自动换行)把字符数组中的字符串输出到显示器。练习练习请输入一段祝福的话,然后输出.
字符串I/0函数3-3字符串I/0函数3-3puts 函数完全可以由 printf 函数取代。 当需要按一定格式输出时,通常使用 printf 函数。 printf("\n 雇员姓名是: ");
puts(name);
printf("\n 雇员所属部门是: ");
puts(dept);printf("\n 雇员姓名是:%s",name);
printf("\n 雇员所属部门是:%s\n",dept);使用puts函数输出字符串使用printf函数输出字符串字符串示例字符串示例要求用户输入他们的名字和性别,如果是男士,请输出:欢迎您,某某先生;如果是女士,请输出:欢迎您,某某女士null#include
main()
{ char a[50];
char sex;
printf("请输入姓名:");
scanf("%s",&a);
printf("\n请输入性别男M 女N :");
scanf("\n%c",sex);
if(sex=='m'||sex=='M')
printf("欢迎您,%s先生",a);
else if(sex=='n'||sex=='N')
printf(“欢迎您,%s女士",a);
else
printf("您输入的性别不合法");
}
字符串函数字符串函数strcmp(字符串1,字符串2):比较字符串1和字符串2。(字符串1=字符串2,返回0;字符串1>字符串2,返回正数;字符串1<字符串2,返回负数;)
包含在#include 头文件中.null#include
#include
void main ()
{
char name[50];
char sex[4];
printf("请输入您的姓名:");
scanf("%s",name);
printf("请输入您的性别:");
scanf("%s",sex);
if(strcmp(sex,"男")==0)
printf("欢迎您%s先生\n",name);
else if(strcmp(sex,"女")==0)
printf("欢迎您%s女士\n",name);
else
printf("对不起,输入不合法");
}常用字符串函数常用字符串函数
一、strcat(字符数组1,字符数组2):把字符串2接到字符串1后面
二、strcpy(字符数组1,字符数组2):将字符数组2拷贝到字符数组1中去(注意:不能用赋值语句将一个字符串常量或字符数组直接赋给一个字符数组。只能用strcpy().)
三、strlen(字符数组):测试字符串长度