当前位置: 首页 > news >正文

c语言入门-5-字符串

c语言入门-5-字符串

  • 正文
    • 1、字符串怎么用
      • 方式一
      • 方式二
    • 2、字符串的长度
  • 深度解析
    • 1 字符串的特性
    • 2 ==\0== 的含义
    • 3 ascii码表
  • 下一篇

正文

1、字符串怎么用

方式一

// 字符串的标准使用方式,用char类型的数组表示字符串
#include<stdio.h>
int main() {char arr[] = "abc";printf("%s",arr);return 1;
}

结果显示
在这里插入图片描述

方式二

// 直接用char类型的数组表示字符串
// 缺点,这个数组的结尾必须要用 ‘0’ 来结尾,否二就会报错,手写容易遗忘
#include<stdio.h>
int main() {char arr[] = {'a','b','c',0};printf("%s", arr);return 1;
}

结果显示
在这里插入图片描述
如果不以0结尾

// 直接用char类型的数组表示字符串
// 缺点,这个数组的结尾必须要用0来结尾,否二就会报错,手写容易遗忘
#include<stdio.h>
int main() {char arr[] = {'a','b','c'};printf("%s", arr);return 1;
}

来看看执行结果(打印的结果会出现中文乱码,因为printf(“%s”, arr); 这个函数中你指定的是 %s,是一个字符串,所以打印的时候系统会寻找字符串结尾的 0 ,当找不到0符号的时候,就会出现以下异常情况)
在这里插入图片描述

2、字符串的长度

#include<stdio.h>
int main() {char arr1[] = "abc";char arr2[] = {'a','b','c','\0'};char arr3[] = { 'a','b','c',0 };printf("%d\n", strlen(arr1));// strlen 语言内部函数,用于求字符串的长度printf("%d\n", strlen(arr2));printf("%d\n", strlen(arr3));return 1;
}

显示结果
在这里插入图片描述
当去掉数组末尾的 0 或者 \0 的时候

#include<stdio.h>
int main() {char arr1[] = "abc";char arr2[] = {'a','b','c'};printf("%d\n", strlen(arr1));// strlen 语言内部函数,用于求字符串的长度printf("%d\n", strlen(arr2));return 1;
}

显示结果(会发现没有用 0 或者 \0 结尾的char数组,计算长度的时候会出现一个随机数,根据个人电脑的配置不同会出现不同的数字)
在这里插入图片描述

深度解析

1 字符串的特性

字符串的结束标志是一个 \0的转义字符,在计算字符串长度的时候 \0是结束标志,不算做字符串内容

2 \0 的含义

1,\0 的ASCII码为“0” ,也就是空字符
2,\0 是字符串的结束符,任何双引号引起来的字符串之后都会自动加上’\0’

3 ascii码表

在这里插入图片描述

下一篇

上一篇 ----> c语言入门-4-常量
下一篇 ----> 未完成

http://www.lryc.cn/news/24898.html

相关文章:

  • [Ansible系列]ansible roles
  • 冯诺依曼体系结构与操作系统的理解
  • API接口签名验证
  • Keettle (pdi-ce) 整库多表迁移(避坑)
  • 搭建私人《我的世界》服务器,使用Cpolar内网穿透更简单
  • map和set的使用
  • 常用正则表达式大全
  • 注意,摸鱼程序员常用的9个小技巧,早点下班不秃头
  • 【Linux】文件时间-ACM
  • [架构之路-124]-《软考-系统架构设计师》-操作系统-3-操作系统原理 - IO设备、微内核、嵌入式系统
  • 【竞赛/TPU】算能TPU编程竞赛总结
  • Substrate 基础教程(Tutorials) -- 模拟网络 添加可信节点
  • SAP 设置无物料号的费用采购
  • k8s ConfigMap 中 subPath 字段和 items 字段
  • UML建模
  • JavaScript常见面试题(更新中)
  • TCP/IP协议
  • Python使用异步线程池实现异步TCP服务器交互
  • matplotlib常用操作
  • 二分算法题
  • Vue+ElementUI+SpringBoot项目配合分页插件快速实现分页(简单暴力)
  • 【回眸】牛客网刷刷刷!嵌入式软件中也会遇到的嵌入式硬件,通讯,通讯协议专题(一)
  • 使用Vue展示数据(动态查询)
  • 构建数据库测试数据——mysql
  • 你想要的Android性能优化系列:启动优化 !
  • python3的基础入门3:基本数据类型
  • 消息队列原理与实战-学习笔记
  • Linux权限相关知识(大量图文展示,及详细操作)
  • Ep_操作系统面试题-什么是协程
  • 在C#中使用互斥量解决多线程访问共享资源的冲突问题