C语言字符数组

  1. 定义和初始化
    • 定义:字符数组是用来存放字符数据的数组,其定义方式与其他类型数组类似,例如char c[10];
    • 初始化:可以逐个字符赋给数组中各元素,如char c[10] = {'I', ', 'a', '', ', 'h', 'a', 'p', 'p', 'y'};;也可以用字符串常量来初始化字符数组,如char c[] = "I am happy";,此时数组长度会自动根据字符串长度确定,并在末尾加上字符串结束标志'\0'
  2. 引用:可以通过数组名和下标来引用字符数组中的元素,得到一个字符,例如char c[10] = {'I', ', 'a', '', ', 'h', 'a', 'p', 'p', 'y'}; int i; for (i = 0; i < 10; i++) printf("%c", c[i]);
  3. 字符串和字符串结束标志
    • 字符串在C语言中的处理方式:C语言将字符串作为字符数组来处理,字符串中的字符逐个存放到数组元素中,系统会自动在字符串末尾添加'\0'作为结束标志。
    • 字符串结束标志的作用:在输出字符串时,遇到'\0'就停止输出,例如char c[] = "China"; printf("%s", c);,输出结果为China,不包括'\0'
    • 通过字符串常量初始化字符数组时的注意事项:若使用char c[10] = "China";初始化,数组c的前5个元素为'C'、'h'、'i'、'n'、'a',第6个元素为'\0',后4个元素也设定为空字符。
  4. 字符数组的输入输出
    • 输入:可以使用scanf函数输入字符数组,但要注意输入的字符串应短于已定义的字符数组长度,且scanf函数中的输入项如果是字符数组名,不要再加地址符&
    • 输出:可以逐个字符输出,也可以用"%s"格式符一次输出整个字符串,但要注意输出字符不包括结束符'\0',且printf函数中的输出项是字符数组名,而不是数组元素名。
  5. 字符串处理函数
    • puts函数:其一般形式为puts(字符数组),作用是将一个字符串(以'\0'结束的字符序列)输出到终端,例如char str[] = "Hello"; puts(str);
    • gets函数:其一般形式为gets(字符数组),从终端输入一个字符串到字符数组,并得到一个函数值,该函数值是字符数组的起始地址,例如char str[20]; gets(str);
    • strcat函数:其一般形式为strcat(字符数组1, 字符数组2),用于连接两个字符数组中的字符串,把字符串2接到字符串1的后面,结果放在字符数组1中,例如char str1[30] = "People's Republic of "; char str2[3] = "China"; strcat(str1, str2); printf("%s", str1);
    • strcpy和strncpy函数strcpy(字符数组1, 字符串2)用于将字符串2复制到字符数组1中,strncpy(字符数组1, 字符串2, n)将字符串2中前面n个字符复制到字符数组1中,例如char str1[10], str2[] = "China"; strcpy(str1, str2);strncpy(str1, str2, 2);
    • strcmp函数:其一般形式为strcmp(字符串1, 字符串2),用于比较字符串1和字符串2,根据比较结果返回一个整数,例如strcmp("China", "Korea");
    • strlen函数:其一般形式为strlen(字符数组),用于测试字符串长度,不包括'\0'在内,例如char str[] = "China"; printf("%d", strlen(str));
    • strlwr函数:其一般形式为strlwr(字符串),用于将字符串中大写字母换成小写字母,例如char str[] = "HELLO"; strlwr(str); printf("%s", str);
    • strupr函数:其一般形式为strupr(字符串),用于将字符串中小写字母换成大写字母,例如char str[] = "hello"; strupr(str); printf("%s", str);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值