#include <stdio.h>
#include <string.h> //用到strlen函数
/*
时间:2022-04-12 16:03
作者:sgbl888
功能:字符数组
知识点:
1、测量字符数组或字符串长度使用strlen函数,不要使用sizeof
2、sizeof更多用于测量占用字节,而非计算字符串长度
3、getchar函数是输入一个字符
4、putchar是输出一个字符
*/
int main(){
//声明字符数组方法一
char str1[] = {'H', 'e', 'l', 'l', 'o', 'W', 'o', 'r', 'l', 'd', '\0'}; //根据元素个数设置字符数组长度
/*
上面代码若改为下面两种:
char str1[10] = {'H', 'e', 'l', 'l', 'o', 'W', 'o', 'r', 'l', 'd'};
char str1[] = {'H', 'e', 'l', 'l', 'o', 'W', 'o', 'r', 'l', 'd'};
打印出来后面会多出其它符号
正确的方法是在字符数组最后添加一个 \0 的元素。\0 是字符串的结束
*/
printf(str1); //也可printf("%s", str1);
//声明字符数组方法二,这种比较常用也比较便捷
char str2[] = "helloworld";
printf("\n%s", str2);
printf("\n--------------------\n");
//当字符数组长度小于元素个数时
//char str3[3] = {'H', 'e', 'l', 'l', 'o'};
//printf("%s\n", str3); //会出现编译警告或者打印出来结果是错误的
//当字符数组长度大于元素个数时
char str4[10] = {'h', 'e', 'l', 'l', 'o'}; //不足用\0填充剩余元素,因此正常打印
printf(str4);
//sizeof测量字符数组(结果是字符数组定义的长度非字符实际长度)
printf("\n------------------\n");
printf("str4[10] sizeof %zd\n", sizeof str4);//结果为10,非5
//使用strlen函数测量长度
printf("str4 len:%hd\n", strlen(str4)); //结果是5,是正确的
printf("str2 len:%hd\n", strlen(str2)); //结果是10,也是正确,统计\0结束符之前的字符
//getchar和putchar
char c1;
printf("请输入一个字符:\n");
c1 = getchar(); //获取输入的一个字符,比如输入一个大写字母 A
c1 += 32; // +32 是把字母转为小写,变成小写a
putchar(c1); //打印一个字符
putchar('\n'); //打印换行
//scanf输入并存入数组
char str5[20];
scanf("%s", str5);
printf("%s\n", str5);
return 0;
}
字符数组与字符串
最新推荐文章于 2023-03-30 15:41:26 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)