字符数组……

目录

一,字符数组是什么?

二,定义

三,字符串的储存

四,字符数组初始化

 1.用单个字符串对字符数组初始化

  2.用字符串常量对字符数组初始化

五,字符数组的输入输出

六,字符串处理函数

1.puts函数

2.gets函数

3.strcat函数

4.strcpy函数

5.strcmp函数

6.strlen函数

7.strlwr函数

8.strupr函数


一,字符数组是什么?

             用来存放字符数据的数组(字符串),字符数组中的各元素依次存放字符串的各字符

二,定义

           char 数组名[常量表达式];

例:  char c[9];

      C数组具有6个元素,可以存放长度小于或等于5的字符串

三,字符串的储存

例: char c[10]="c program";

该数组在计算机中储存形式为:

c[0]c[1]c[2]c[3]c[4]c[5]c[6]c[7]c[8]c[9]
c program\0

注:字符串实际占有单元的数量等于字符串长度+1

四,字符数组初始化

 1.用单个字符串对字符数组初始化

  例: char c[10]={'c','','p','r','o','g','r','a','m','\0'};

(把10个字符依次赋给c[0]~c[9]这10个元素)

c[0]c[1]c[2]c[3]c[4]c[5]c[6]c[7]c[8]c[9]
c program\0

  • 如果在定义字符数组是不进行初始化,则数组中各元素的值是不可预料的
  • 如果花括号中提供的初始个数(即字符个数)大于数组长度,则程序语法错误
  • 如果提供的初值个数与预定的数组长度相同,在定义时可以省略数组长度,系统会自动根据初值个数确定数组长度
  • 如果初值个数小于数组长度,则只将这些字符赋给数组中前面那些元素,其余的元素自动定为字符串(即'\0')

  2.用字符串常量对字符数组初始化

例:

(1) char str[6]={"CHINA");

  (2)   char str[6]="CHINA";

  (3)   char str[]="CHINA";

  (4)   char c[12]={"HOW ARW YOU"};

  与    char c[]={'H','O','W','','A','R','W','','T','O','U'};

  • 将字符串储存到字符数组中,字符串和第一个'\0'构成有效字符串。对字符串的操作,就是对字符数组的操作
  • 普通数组中的元素是确定的,一般用下标控制循环;而字符串使用结束符'\0'来控制循环

五,字符数组的输入输出

1.单个字符输入输出(用格式符%c或字符输入函数)

#include<stdio.h>
int main ()
{
	char c[5];
	int i;
	for(i=0;i<5;i++)
	    scanf("%c",&c[i]);
	for(i=0;i<5;i++)
	    printf("%c",c[i]);
	printf("\n");
	return 0;
}

2.字符串整体和部分输入输出(用格式符%s)

     char str[6];

    scanf("%s",str);

  • 输入输出必须是以字符串的地址形式出现
  • 也可以是字符串常量:printf (“%s\n","book");
  • 只能输入不包括空格、\t和\n的字符串
  • 如果要输入空格,用gets函数
  • 数组名前不加&符号 

例:

     char str[10];

     scanf("%s",str);

     printf("%s\n",str);

输入:how are you

输出: how

注:用%s输出字符串时,从输出项提供的地址开始输出,直到遇到字符结束串'\0'为止

六,字符串处理函数

puts 输出字符串

gets 输入字符串

(使用时注意程序前加:#include<stdio.h>)

strcat 字符串连接

strcpy 字符串复制

strcmp 字符串比较

strlen 字符串长度

strlwr 将字符串中大写转换为小写字母

strupr 将字符串中小写转换为大写字母

(使用时注意程序前加:#include<string.h>

1.puts函数

形式:puts(字符数组)

作用:是将一个字符串(以'\0'结束的字符序列)输出到终端并换行

int main()
{
char str[]={"Chain"};
puts(str);//其作用等价printf("%s",str);

2.gets函数

形式:gets(字符数组)

作用:从终端输入一个字符串到字符数组,并且得到一个函数值。其可以输入带空格的字符串,用scanf的%s格式不行

int main()
{
char str[6];
gets(str);
puts(str);
}

输入:how are you

输出:how are you

3.strcat函数

形式:strcat(字符数组1,字符数组2)

作用:连接两个字符数组中的字符串,把字符串2接到字符串1的后面,结果放在字符数组1中,函数调用后得到一个函数值——字符数组1的地址

char str1[30]={"people's Republic of"};
char str2[]={"Chain"};
printf("%s",strcat(str1,str2));

输出:People's Republic of China

4.strcpy函数

形式:strcpy(字符数组1,字符串2)

作用:将字符串2复制到字符数组1中

char str[10],str2[]={"China"};
strcpy(str1,str2)
//不能用str1=str2来赋值
//字符数组1的长度不应小于字符串2的长度

5.strcmp函数

形式: strcmp(字符串1,字符串2)

作用:比较字符串1和字符串2

1.)确定字符串大小的基本原则:

按照串中对应位置字符的ASC||码值的大小确定大小

2.)比较结果由函数值带回(返回两个字符之差)

  • 如果字符串1=字符串2,函数值为0
  • 如果字符串1>字符串2,函数值为正整数
  • 如果字符串1<字符串2,函数值为负整数

6.strlen函数

形式:strlen(字符数组)

作用:测试字符串长度的函数。函数的值为字符串中的数据长度(不包括’\0'在内)

char str[10]={"China"};
printf("%d",strlen(str));
//输出结果表示10,而是5,也可以直接测试字符串常量的长度,如strlen("China");

7.strlwr函数

形式:strlwr(字符串)

作用:将字符串中大写字母转换为小写

8.strupr函数

形式:strupr(字符串)

作用:将字符串中小写字母转换为大写

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值