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()很有用。

相关推荐
黎雁·泠崖16 分钟前
【魔法森林冒险】5/14 Allen类(三):任务进度与状态管理
java·开发语言
十年磨一剑~23 分钟前
Linux程序接收到sigpipe信号崩溃处理
linux
geshifei29 分钟前
Sched ext回调3——select_cpu(linux 6.15.7)
linux·ebpf
代码游侠1 小时前
C语言核心概念复习——网络协议与TCP/IP
linux·运维·服务器·网络·算法
你真是饿了1 小时前
6.库制作与原理
linux·服务器
2301_763472461 小时前
C++20概念(Concepts)入门指南
开发语言·c++·算法
TechWJ1 小时前
PyPTO编程范式深度解读:让NPU开发像写Python一样简单
开发语言·python·cann·pypto
lly2024062 小时前
C++ 文件和流
开发语言
m0_706653232 小时前
分布式系统安全通信
开发语言·c++·算法
Zach_yuan2 小时前
深入浅出 JSONCpp
linux·服务器·网络·c++