字符、字符串:定义、输入输出方法

本文介绍了C语言中字符和字符串的基本概念及操作。字符在计算机中以整型存储,通过`scanf`和`getchar`进行输入,用`printf`和`putchar`输出。字符串是字符组成的串型结构,以``结束。输入字符串通常用`scanf`或`gets`,输出用`printf`或`puts`。字符串存在形式包括字符数组和字符串字面值,其中字符串字面值存储在代码段,不可修改。文章还提供了几个练习题,如判断回文串、字符串转整数和字符串逆序等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

字符

字符的输入

字符的输出

字符串

字符串的输入

字符串的输出

字符串的存在形式

        字符数组

        字符串字面值

常用方式


字符

        在计算机中是以整型形式存储的,当需要显示时会根据ASCII表中的对应关系显示出相应的符号或图案

字符的输入

        scanf("%c",&ch);

        ch = getchar();

字符的输出

        printf("%c",ch);

        putchar(ch);

        是一种数据结构,是由一组类型相同的若干个数据组成,末尾有结束标志

        对于这种数据结构的处理都是批量性的,从开头位置一直处理到结束标志为止

字符串

        由字符组成的串型结构,结束标志是'\0'

字符串的输入

        scanf("%s",地址);

        缺点:不能输入空格

        char *gets(char *s);

        功能:输入字符串,并且可以接受空格

        返回值:链式调用(把一个函数的执行结果,通过返回值作为另一个函数的参数)

        char *fgets(char *s, int size, FILE *stream);

        功能:可以设置输入的字符串的长度为size-1,超出部分不会接受,它会为'\0'预留位置

        s:内存首地址

        size:字节数

        stream:stdin

        注意:如果输入的字符不足size-1,最后的\n会被一起接受了

字符串的输出

        printf("%s",地址);

        int puts(const char *s);

        功能:输出一个字符串,会在末尾 自动添加一个\n

        返回值:成功输出的字符个数

字符串的存在形式

        字符数组

                char str[10] = {'a','b','c'...};

                由char类型组成的数组,要为'\0'预留位置,初始化麻烦

                使用的是栈内存,数据可以随意修改

        字符串字面值

                "由双引号包含的若干个字符"

                        int *p = "12345"

                在末尾隐藏一个'\0'

                字符串字面值是以地址形式存在的,数据存储在代码段中,如果修改就会段错误

                注意:它的结束标志是加在末尾的 

                printf("%d",sizeof("12345"));

                注意:字符个数+1 == 6

                printf("%d",sizeof(p));

                注意:指针的字节数4|8

                多个一模一样的字符串字面值在代码段只有一份

常用方式

        字符数组[] = "字符串字面值";

        会自动给'\0'预留位置

        赋值完成后字符串会存在两份,一份在代码段,另一份在栈内存(可以修改)

        练习2:实现一个函数,判断字符串是否是回文串

        "abccba" "abcba"

        练习3:实现一个函数,把数字组成的字符串转换成整数

        "1234" 1234

        练习4:实现一个函数,把一个字符串逆序

        "abcd" "dcba"

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值