初识C语言——字符串+转义字符+注释

简介: 初识C语言——字符串+转义字符+注释

一.字符串

什么是字符串呢?

“hello world!”——这就是一个字符串。

这种由双引号(Double Quote)引起来的一串字符称为字符串字面值(String Literal),或者简称字符串。

那现在有一个问题,这个字符串里有几个字符呢?

是只有’h’, ‘e’, ‘l’, ‘l’, ‘o’,’ ’ ', ‘w’ , ‘o’, ‘r’, ‘d’, ‘!’. 这12字符吗?

不是的!!!

为什么呢?因为在C语言中,字符串的末尾都有一个 '\0’这样的转义字符作为它的结束标志。在计算字符串长度的时候 \0 是结束标志,不算作字符串内容。

来看一段代码:

————————————————

版权声明:本文为CSDN博主「YIN_^O^」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/m0_70980326/article/details/125904625

#include <stdio.h>
//下面代码,打印结果是什么?为什么?(突出'\0'的重要性)
int main()
{
  char arr1[] = "hello";
  char arr2[] = { 'h','e','l','l','o'};
  char arr3[] = { 'h','e','l','l','o','\0'};
  printf("%s\n", arr1);
  printf("%s\n", arr2);
  printf("%s\n", arr3);
  return 0;
}

看运行结果:04a24eab9f7e4f2b8dd66f0254f6c7ad.png这就很好地证明了’\0’是字符串的结束标志,隐藏在字符串结尾,%s打印字符串遇到’\0’结束。


二.转义字符

上面我们提到了字符串的结束标志“\0’是一个转义字符,那么什么是转义字符呢?

定义:转义字符是很多程序语言、数据格式和通信协议的形式文法的一部分。对于一个给定的字母表,一个转义字符的目的是开始一个字符序列,使得转义字符开头的该字符序列具有不同于该字符序列单独出现时的语义。因此转义字符开头的字符序列被叫做转义序列。

举个例子:假设我们要在屏幕上打印一个目录: c:\code\test.c

我们写了这样一个代码:

#include <stdio.h>
int main()
{
  printf("c:\code\test.c\n");
  return 0;
}

啊.png为什么打印出来是这样呢?\n, \t这些东西为什么没有打印出来呢?

原因是这里的\n, \t就是我们所说的转义字符。

所有的转义字符和所对应的意义:111.png注意:


区分,斜杠:“/” 与 反斜杠:“” ,此处不可互换

\xhh 十六进制转义不限制字符个数 ‘\x000000000000F’ == ‘\xF’

下面做一些练习,帮助大家理解一些常见的转义字符:

问题1:在屏幕上打印一个单引号’,怎么做?

问题2:在屏幕上打印一个字符串,字符串的内容是一个双引号“,怎么做?

 printf("%c\n", ''');
 printf("%s\n", """);

这样能直接打印出来吗?

我们运行一下:811afafd7b234ab0b91e2132225838f6.png发生错误了,为什么呢?

因为,当我们这样 printf(“%c\n”, ’ ’ '); 去打印字符 ’ 时,第一个单引号和第二个单引号结合了,这样第三个单引号就落单了,所以出现错误了。

同样的道理,printf(“%s\n”, " " ");打印一个双引号,前两个也自动结合了。

为了解决这种问题,我们就用到了转义字符,顾名思义,转义字符就是转变了原来的意思。

所以,我们在它们前面都加上一个反斜杠’',*‘用于表示字符常量’,"用于表示一个字符串内部的双引号*,这样,就可以成功打印了。

int main()
{
  printf("%c\n", '\'');
  printf("%s\n", "\"");
  return 0;
}

a2f1b4f0ebab41db877b941cb5cf49bd.png再讲两个比较重要的:

  1. \ddd ,ddd表示1~3个八进制的数字。 如: \130 X
  2. \xdd ,dd表示2个十六进制数字。 如: \x30 0
    举个例子:
int main()
{
  printf("%c\n", '\130');
  printf("%c\n", '\x30');
  return 0;
}

结果应该是什么呢?f63226ecb6954c7cb0c93ac215c8d5cb.png

三.注释

注释是用来干啥滴?


代码中有不需要的代码可以直接删除,也可以注释掉

代码中有些代码比较难懂,可以加一下注释文字

怎样注释:

注释有两种风格:

1.C语言风格的注释 / xxxxxx /

缺陷:不能嵌套注释

2.C++风格的注释 //xxxxxxxx

可以注释一行也可以注释多行

举个例子:

#include <stdio.h>
int Add(int x, int y) {
    return x+y; }
/*C语言风格注释
int Sub(int x, int y)
{
    return x-y;
}
*/
int main()
{
    //C++注释风格
    //int a = 10;
    //调用Add函数,完成加法
    printf("%d\n", Add(1, 2));
    return 0; }

被注释掉的代码,要么是不需要的带码,要么是对代码的解释,它们是不会参与程序的运行的。

最后,我们再来做一道相关的笔试题:

#include <stdio.h>
int main()
{
    printf("%d\n", strlen("abcdef"));
    // \62被解析成一个转义字符
    printf("%d\n", strlen("c:\test\628\test.c"));
    return 0; }

问题是:程序输出什么?

结果是6,14.

首先给大家解释一下strlen()是什么东西。

strlen是C语言内置的一个求字符串长度的库函数,另外再提一下在计算字符串长度的时候 \0 是结束标志,不算作字符串内容2c4f0d8c2d11420fb55a24e569fa6f8a.png

目录
相关文章
|
1月前
|
C语言 C++
【C语言】解决不同场景字符串问题:巧妙运用字符串函数
【C语言】解决不同场景字符串问题:巧妙运用字符串函数
|
2月前
|
存储 C语言
【C语言基础考研向】10 字符数组初始化及传递和scanf 读取字符串
本文介绍了C语言中字符数组的初始化方法及其在函数间传递的注意事项。字符数组初始化有两种方式:逐个字符赋值或整体初始化字符串。实际工作中常用后者,如`char c[10]=&quot;hello&quot;`。示例代码展示了如何初始化及传递字符数组,并解释了为何未正确添加结束符`\0`会导致乱码。此外,还讨论了`scanf`函数读取字符串时忽略空格和回车的特点。
|
2月前
|
存储 Serverless C语言
【C语言基础考研向】11 gets函数与puts函数及str系列字符串操作函数
本文介绍了C语言中的`gets`和`puts`函数,`gets`用于从标准输入读取字符串直至换行符,并自动添加字符串结束标志`\0`。`puts`则用于向标准输出打印字符串并自动换行。此外,文章还详细讲解了`str`系列字符串操作函数,包括统计字符串长度的`strlen`、复制字符串的`strcpy`、比较字符串的`strcmp`以及拼接字符串的`strcat`。通过示例代码展示了这些函数的具体应用及注意事项。
131 7
|
2月前
|
存储 算法 C语言
数据结构基础详解(C语言):单链表_定义_初始化_插入_删除_查找_建立操作_纯c语言代码注释讲解
本文详细介绍了单链表的理论知识,涵盖单链表的定义、优点与缺点,并通过示例代码讲解了单链表的初始化、插入、删除、查找等核心操作。文中还具体分析了按位序插入、指定节点前后插入、按位序删除及按值查找等算法实现,并提供了尾插法和头插法建立单链表的方法,帮助读者深入理解单链表的基本原理与应用技巧。
520 6
|
2月前
|
存储 人工智能 C语言
C语言程序设计核心详解 第八章 指针超详细讲解_指针变量_二维数组指针_指向字符串指针
本文详细讲解了C语言中的指针,包括指针变量的定义与引用、指向数组及字符串的指针变量等。首先介绍了指针变量的基本概念和定义格式,随后通过多个示例展示了如何使用指针变量来操作普通变量、数组和字符串。文章还深入探讨了指向函数的指针变量以及指针数组的概念,并解释了空指针的意义和使用场景。通过丰富的代码示例和图形化展示,帮助读者更好地理解和掌握C语言中的指针知识。
|
2月前
|
C语言
C语言 字符串操作函数
本文档详细介绍了多个常用的字符串操作函数,包括 `strlen`、`strcpy`、`strncpy`、`strcat`、`strncat`、`strcmp`、`strncpy`、`sprintf`、`itoa`、`strchr`、`strspn`、`strcspn`、`strstr` 和 `strtok`。每个函数均提供了语法说明、参数解释、返回值描述及示例代码。此外,还给出了部分函数的自实现版本,帮助读者深入理解其工作原理。通过这些函数,可以轻松地进行字符串长度计算、复制、连接、比较等操作。
|
3月前
|
C语言
【C语言】字符串及其函数速览
【C语言】字符串及其函数速览
30 4
|
1月前
|
C语言 C++
C语言 之 内存函数
C语言 之 内存函数
34 3
|
C语言 程序员 编译器
|
程序员 C语言 编译器
C语言关键字、标识符和注释
一、关键字 C语言提供的有特殊含义的符号,共32个。 在Xcode中关键字全部高亮显示,关键字全部都为小写。如return、int等。 二、标识符 定义:标识符是程序员在程序中自定义的一些符号和名称。
500 0