C语言从入门到精通之【字符串】

C语言没有专门用于储存字符串的变量类型,字符串都被储存在char类型的数组 中。数组由连续的存储单元组成,字符串中的字符被储存在相邻的存储单元中,每个单元储存一个字符,每个字符占1个字节。

数组末尾位置的字符\0。这是空字符(null character),标记字符串的结束。C中的字符串一定以空字符结束,这意味着数组的容量必须至少比待存储字符串中的字符数多1。就是说一个长度为10的数组,最多只能存9个字符,最后一个字符要来存结束符。

C 复制代码
#include <stdio.h>
#include <string.h>

int main(void)
{
    char name[64] = {0};

    printf("What's your name? ");
    scanf("%s", name);
    printf("Hello, my name is %s\n", name);
    printf("strlen(name) %lu\n", strlen(name));
    printf("sizeof(name) %lu\n", sizeof(name));
    return 0;
}

注意(这很重要),scanf()只读取了zhu rongcai中的zhu,它在遇到第1个空白(空格、制表符或换行符)时就不再读取输入。一般而言,根据%s转换说明,scanf()只会读取字符串中的一个单词,而不是一整句。C语言还有其他的输入函数(如,fgets()),用于读取一般字符串。

sizeof 运算符 ,它以字节为单位给出对象的大小。strlen()函数给出字符串中的字符长度,可以看到,结束符并没有算进去。strlen()和 sizeof 是非常重要的编程工具。例如,在各种要处理字符串的程序中,strlen()很有用。

相关推荐
IvanCodes4 小时前
Python 数据处理(十三):JSON、CSV 与数据序列化
开发语言·python
M78佐菲4 小时前
ARM学习笔记(1)
linux·arm开发·笔记·嵌入式硬件·学习
嵌入式阿蔡5 小时前
嵌入式虚拟化2026:Hypervisor从数据中心走进MCU
嵌入式
益达丫6 小时前
Socket编程揭秘:端口、IP与进程通信的底层逻辑
linux·笔记
aramae6 小时前
MySQL复合查询(8)
java·c语言·开发语言·后端·算法
无敌贵点大王7 小时前
RTThread学习记录11——RT-Thread 设备模型吃透:UART/ADC/PWM/PIN 到底有什么区别?
c语言·stm32·学习·链表
Logic1017 小时前
C语言/数据结构位运算题解:异或XOR找出时尚聚会中的“独特颜色“——只出现一次的数字
c语言·数据结构·数组·位运算·时间复杂度·算法题·异或性质
chicheese8 小时前
Linux 面试速查表:从初级到高级,附高频场景答题模板
linux·运维
qq_2518364578 小时前
springboot vue3 开发实现 拼豆管理系统
java·开发语言·ai编程
Linux-lucky9 小时前
32-38-Linux学习之旅之MySQL综合
linux·运维·学习·mysql·ubuntu