字符数组与字符串

本文介绍了C语言中字符数组的声明与使用,强调了strlen函数在计算字符串长度中的重要性,以及sizeof与strlen的区别。通过示例展示了字符数组的初始化、输出以及getchar和putchar函数的运用,并探讨了字符数组长度与元素个数的关系。同时,还涉及了scanf函数从用户输入读取字符串到字符数组的操作。
摘要由CSDN通过智能技术生成
#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;
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值