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

相关推荐
Johny_Zhao15 分钟前
Docker + CentOS 部署 Zookeeper 集群 + Kubernetes Operator 自动化运维方案
linux·网络安全·docker·信息安全·zookeeper·kubernetes·云计算·系统运维
weixin_4723394619 分钟前
高效处理大体积Excel文件的Java技术方案解析
java·开发语言·excel
小毛驴8501 小时前
Linux 后台启动java jar 程序 nohup java -jar
java·linux·jar
枯萎穿心攻击1 小时前
响应式编程入门教程第二节:构建 ObservableProperty<T> — 封装 ReactiveProperty 的高级用法
开发语言·unity·c#·游戏引擎
好好学习啊天天向上2 小时前
世上最全:ubuntu 上及天河超算上源码编译llvm遇到的坑,cmake,ninja完整过程
linux·运维·ubuntu·自动性能优化
Eiceblue2 小时前
【免费.NET方案】CSV到PDF与DataTable的快速转换
开发语言·pdf·c#·.net
tan180°3 小时前
MySQL表的操作(3)
linux·数据库·c++·vscode·后端·mysql
m0_555762903 小时前
Matlab 频谱分析 (Spectral Analysis)
开发语言·matlab
学不动CV了3 小时前
ARM单片机启动流程(二)(详细解析)
c语言·arm开发·stm32·单片机·51单片机
典学长编程3 小时前
Linux操作系统从入门到精通!第二天(命令行)
linux·运维·chrome