首页 > 其他分享 >C语言:渣女\0与被它区别对待的兄弟俩字符串与字符

C语言:渣女\0与被它区别对待的兄弟俩字符串与字符

时间:2024-03-18 12:30:12浏览次数:24  
标签:abcd 字符 区别对待 打印 C语言 兄弟俩 数组 字符串

虽然这个拟人手法用的挺那啥,但是我觉得还挺贴切的。

你觉得呢?

欢迎浏览后发表自己的看法!

目录

一、字符

(一)概念

(二)实际操作

二、字符串      

(一)概念

(二)实际操作

三、\0对字符串特殊照顾,但对字符就不太行了

四、小结


一、字符

(一)概念

        其实字符理解起来超级简单,就是在键盘上能打出来的a,q,@,#,等等。这些符号都被称为字符

(二)实际操作

        C语言中字符是用单括号括起来的,如:'a','b','@'。字符数组里单引号括起来的,也是字符。(字符数组,可以参考图a中的arr1)

        单个字符的打印可以使用%c来指定格式:

二、字符串      

(一)概念

        使用双引号括起来的⼀串字符就被称为字符串,如:"abcdef",这就是一个字符串。

(二)实际操作

        1.字符串的打印格式可以使用%s来指定,也可以直接打印:

        

        2.C语言中也可以把一个字符串放在一个字符数组中,就像这样:

        但是,一旦进行开始调试,能打印在屏幕上的,除了我们想要的abcd,还有一些随机值。

(如下图所示)

       

         为什么还会有一些随机值呢?还请继续往下看。

三、\0对字符串特殊照顾,但对字符就不太行了

        字符串的末尾会隐藏着一个\0字符。这个\0字符呢,则是字符串的结束标志

        什么叫做字符串的结束标志

        请看一下面的解释:

        对于字符串"abcd",我们看到的是四个字符:a,b,c,d。但实际上末尾还隐藏着一个\0的转义字符。

在使用库函数printf()打印字符串"abcd"时,一遇到\0打印就会停止,所以屏幕上只会打印出abcd。

可惜,\0对字符串特殊照顾,但对字符就不太行了

       

    接下来我用图a和图b说话。这里加入字符串作为对照组:

图a

 图b

        大家可以从图a和图b中看出,arr1字符数组在打印abc的时候,还打印了一些随机值,这是因为arr1字符数组在末尾的地方没有\0作为结束标志,因此在打印到c时还在继续打印,直到碰到不知道藏在哪里的\0。

        arr2字符串的打印就是完全正常的,这是因为数组中有\0作为技术标志,打印可以正常停止。

        

看得出来\0对字符串和字符进行的区别对待了吗?

然后我又有个疑问了:要是我把\0单独放进字符数组中,它还能像上面那样藏起来找不到吗?

我试了试,看来不行。图c和图d是两张证据:

图c

图d

大家可以从图c和图b中看出,单独加了个\0后,arr3字符数组打印到 \0 的时候就停⽌了。

四、小结

        

        所以,大家想打印字符数组时,记得单独再加个\0——永远都不能忘记被区别对待——除非你就是要随意(值) 。

        

  关于printf函数和stdio.h,需要的可以看这个:C语言:工具人printf-CSDN博客

        关于main函数,需要的可以看这个:C语言:“奇异”main函数-CSDN博客

暂时介绍到这里,后续有的话会继续补充。

标签:abcd,字符,区别对待,打印,C语言,兄弟俩,数组,字符串
From: https://blog.csdn.net/2401_82886759/article/details/136784068

相关文章

  • C语言:爱跳舞的转义字符——旋转,跳跃,我闭着眼
    转义字符,顾名思义:原来意思被转变的字符。比如0和\0。前者就是数字0,而后者被\这个符号垫起来后,就成了字符串的结束标志,代表没有内容。就好像\0在说:“旋转、跳跃我闭着眼,我已不在乎自己是个数字0。”目录一、概念二、一些常见的转义字符——让我们一起欣赏一场舞会盛宴......
  • c语言编程题
    1.密码破译要将"China"译成密码,译码规律是:用原来字母后面的第4个字母代替原来的字母。例如,字母"A"后面第4个字母是"E"."E"代替"A"。因此,"China"应译为"Glmre"。请编一程序,用赋初值的方法使cl、c2、c3、c4、c5五个变量的值分别为,’C’、’h’、’i’、’n’、’a’,经过运算,使c1、......
  • 排序算法01 - 插入排序 (C语言)
    原理将a[0]作为哨兵,然后从a[2]开始遍历数组,如果发现前者比后者大,则将后者存入哨兵,再从后向前调整数组元素的位置,最后将哨兵插入即可。图示代码#include<stdio.h>constintN=10010;inta[N];n;voidinsert_sort(inta[]){intj;for(inti=2;i<=n;i++){......
  • 内存函数(C语言)
    文章目录内存函数memcpymemmovememsetmemcmp内存函数使用内存函数需要包含头文件<string.h>memcpy将内存的数据拷贝到新空间void*memcpy(void*destination,constvoid*source,size_tnum);memcpy函数能将源地址后num个字节的数据拷贝到目标空间区别内存......
  • 【华为OD】C卷真题 100分:Wonderland游乐园 C语言代码实现[思路+代码]
      C++、java、python代码:【华为OD】C卷真题100分:Wonderland游乐园C/C++代码实现[思路+代码]-CSDN博客【华为OD】C卷真题100分:Wonderland游乐园Java代码实现[思路+代码]-CSDN博客【华为OD】C卷真题100分:Wonderland游乐园python代码实现[思路+代码]-CSDN博客  题......
  • c语言的基础
    一:数据类型1:整数类型包括整型,长整型。短整型。区别在于,采用不同位数的二进制编码表示,占用不同的存储空间,表示不同的数值范围,32位操作系统类型说明符数的范围字节数int(整型)-2147483648到21474836474unsignedint(无符号整型)0~65535,即0~(2-1)4......
  • 【C语言——浮点数在内存中的存储(补充篇)】
    一.概况     根据国际标准IEEE(电气和电子工程协会)754,任意一个二进制浮点数都可以表示为以下形式:V=(-1)^s*M*2^E1.(-1)^表示符号位,当s=0时,V为正数;当s=1,V为负数。2.M表示有效数字,M是大于等于1,小于2的。3.2^E表示指数。  二.存储过程IEEE754对有效数字M......
  • PTA浙大版《C语言程序设计(第4版)》2—6
    练习2-6计算物体自由下落的距离一个物体从100米的高空自由落下。编写程序,求它在前3秒内下落的垂直距离。设重力加速度为10米/。输入格式:本题目没有输入。输出格式:按照下列格式输出height=垂直距离值代码长度限制  16KB时间限制  400ms内存限制  64MB......
  • 实验一 c语言开发环境使用和数据类型、运算符、表达式
    task1`#include<stdio.h>include<stdlib.h>intmain(){printf("o\to\n");printf("<H>\t<H>\n");printf("II\tII\n");system("pause:");return0;}`task2`#include......
  • 实验1 C语言开发环境使用和数据类型、运算符、表达式
    点击查看代码#include<stdio.h>#include<stdlib.h>intmain(){ printf("oo\n"); printf("<H><H>\n"); printf("IIII\n"); system("pause"); return0;}点击查看代码#include<stdio......