前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >通过这14点,让你快速入门C语言(2)

通过这14点,让你快速入门C语言(2)

作者头像
waves浪游
发布2024-01-23 09:39:18
870
发布2024-01-23 09:39:18
举报
文章被收录于专栏:C语言讲解C语言讲解

5. 字符串+转义字符+注释

5.1 字符串

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

代码语言:javascript
复制
#include <stdio.h>
#include <string.h>
int main()
{
	printf("hello bit\n");
	
	char arr1[] = "abc";//[]中是这个数组内有多少个字符,因此此处是4,因为\0算作一个字符,而字符串的结束标志是一个 \0 的转义字符。
	char arr2[] = { 'a', 'b', 'c', '\0' };//[]中是这个数组内有多少个字符,因此此处是4。
	//string length 字符串长度
	//strlen是库函数,是专门求字符串长度的函数;所以在一开始要加上#include <string.h>
	printf("%d\n", strlen(arr1));//3
	printf("%d\n", strlen(arr2));//3
	
	printf("%s\n", arr1);//%s是打印字符串,遇到\0打印自然结束
	printf("%s\n", arr2);

	return 0;
}

tips: (i)\0算作一个字符 (ii)字符串的结束标志是一个 \0 的转义字符。在计算字符串长度的时候 \0 是结束标志,不算作字符串内容。

5.2 转义字符

假如我们要在屏幕上打印一个目录: c:\code\test.c,我们该如何写代码?

代码语言:javascript
复制
#include <stdio.h>

int main()
{
    printf("c:\code\test.c\n");
    return 0;
} 

但实际上程序运行的结果是这样的:

转义字符
转义字符

这里就不得不提一下转义字符了,转义字符顾名思义就是转变意思。 下面我们就来看一些转义字符:

转义字符

释义

\?

在书写连续多个问号时使用,防止他们被解析成三字母词

\’

用于表示字符常量’

\"

用于表示一个字符串内部的双引号

\\

用于表示一个反斜杠,防止它被解释为一个转义序列符

\a

警告字符,蜂鸣

\b

退格符

\f

清屏并换页符

\n

换行

\r

回车

\t

水平制表符

\v

垂直制表符

\ddd

ddd表示1~3个八进制的数字

\xdd

dd表示2个十六进制数字


  • 问题1:如何打印(are you ok??)
代码语言:javascript
复制
#include <stdio.h>

int main()
{
    printf("(are you ok??)");//这样写实际打印出来是(are you ok]
    printf("(are you ok\?\?)");//这样写实际打印出来才是(are you ok??)
    return 0;
}

附:   在ANSI C标准中,定义了9个三字母词(trigraph),三字母词就是几个字符的序列,合起来表示另一个字符。由于一些非常老式的键盘上没有[]{}#^~|这些字符,因此在C语言中规定了9个三字母词与其对应。

三字母词

对应的字符

??=

#

??(

[

??)

]

??<

{

??>

}

??/

/

??!

|

??’

^

??-

~


  • 问题2:如何打印’
代码语言:javascript
复制
#include <stdio.h>

int main()
{
    printf("%c\n",'\'');
    return 0;
    //%c - 打印字符,且是单个字符
    //%d - 打印整型
    //%f - 打印浮点数(小数)
    //%s - 打印字符串
}

  • 问题3:如何打印"
代码语言:javascript
复制
#include <stdio.h>

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

  • 问题4:如何打印c:\code\test.c
代码语言:javascript
复制
#include <stdio.h>

int main()
{
    printf("c:\\code\\test.c");//\t是一个转义字符,为了不让\是\t中的\,则需在\前再加一个\,以此来转义\;在一个路径里面你想要一个\,那就要写出两个\
    return 0;
} 

  • 问题5:\a的用法
代码语言:javascript
复制
#include <stdio.h>

int main()
{
    printf("\a");
    return 0;
}

  • 问题6:\b的用法
退格符的用法
退格符的用法

  • 问题7:\f的含义   终端在输出‘\f’之后内容之前,会将整个终端屏幕清空,然后在输出内容。由于现阶段用的还不是很多,所以不用过度纠结,先大致了解,等到学到Linux后就可以理解了。

  • 问题8:\n的用法
换行的用法
换行的用法

  • 问题9:\r的用法   此处\r所代表的回车与键盘上我们所用的回车键是有所区别的。\r的效果是输出回到本行行首,结果可能会将这一行之前的输出覆盖掉,也就是说,\r (要与\n区别开来,\n是换行的,而\r是不换行的)后边的数字替代这一行最开始的相等数目的数字。
代码语言:javascript
复制
#include <stdio.h>

int main()
{
    printf("123456\r789");//打印出来是789456
    return 0;
}

  • 问题10:\t的用法
水平制表符的用法
水平制表符的用法

  • 问题11:\v的用法
代码语言:javascript
复制
#include <stdio.h>

int main()
{
    printf("123\v456");
    return 0;
    //打印出来是
    //123
    //   456
}

  • 问题12:\ddd的用法
反斜杠ddd的用法
反斜杠ddd的用法

  \ddd中的ddd表示1-3个八进制的数字。130这个8进制数字转成10进制数字,作为ASCII码值,表示的字符就是‘X’。

附:

8进制转换成10进制
8进制转换成10进制

ASCII码表
ASCII码表

  • 问题13:\xdd的用法
反斜杠xdd的用法
反斜杠xdd的用法

  \xdd中的dd表示2个十六进制数字。30这个16进制数字转成10进制数字,作为ASCII码值,表示的字符就是‘0’。 附:

16进制转换成10进制
16进制转换成10进制
5.3 注释
  • 代码中有不需要的代码可以直接删除,也可以注释掉
  • 代码中有些代码比较难懂,可以加一下注释文字

注释有两种风格:

  • C语言风格的注释 :/*xxxxxx*/(缺陷:不能嵌套注释)
  • C++风格的注释 //xxxxxxxx(推荐,可以注释一行也可以注释多行)

6. 选择语句

代码语言:javascript
复制
#include <stdio.h>

int main()
{
    int input = 0;
    printf("要好好学习吗?(1/0)");
    scanf("%d", &input);
    
    if(input == 1)
    {
        printf("好offer\n");
    }
    else if(input == 0)
    {
        printf("卖红薯\n");
    }
    
    return 0;
}

7. 循环语句

C语言中如何实现循环呢?

  • while语句
  • for语句(后期讲)
  • do … while语句(后期讲)
代码语言:javascript
复制
#include <stdio.h>

int main()
{
    int line = 0;
    while (line < 20000)
    {
        printf("写代码:%d\n", line);
        line++;
    }
    if (line == 20000)
        printf("好offer\n");
    return 0;
}

8. 函数

函数的特点就是简化代码,代码复用。

函数
函数

9. 数组

9.1 数组定义

要存储1-10的数字,怎么存储? C语言中给了数组的定义:一组相同类型元素的集合

代码语言:javascript
复制
int main()
{
    int arr[10] = {1,2,3,4,5,6,7,8,9,10};//定义一个整形数组,最多放10个元素
    
    int arr1[10] = {1,2,3};//不完全初始化,只初始化前3个,剩余的初始化为0
    int arr2[10];//这样写也是可以的,只是数组中的值是随机值
    int arr3[] = {1,2,3};//这样写也是可以的,[]中默认是3
    int arr4[];//这样写是错误的

    int n = 10;
	int arr[n];//C99标准中  变长数组,允许数组在创建的时候,数组大小用变量指定,但是这种数组不能初始化
    
    return 0;
}
9.2 数组的下标

  C语言规定:数组的每个元素都有一个下标,下标是从0开始的。数组可以通过下标来访问。

代码语言:javascript
复制
#include <stdio.h>

int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	printf("%d\n", arr[8]);//打印出来是9
	return 0;
}

附:

int arr[10] = {1,2,3,4,5,6,7,8,9,10}

1

2

3

4

5

6

7

8

9

10

下标

0

1

2

3

4

5

6

7

8

9

9.3 数组的使用
代码语言:javascript
复制
#include <stdio.h>

int main()
{
    int arr[10];
	//输入0~9
	int j = 0;
	while (j < 10)
	{
		scanf("%d", &arr[j]);
		j++;
	}

	//输出0~9
	int i = 0;
	while (i < 10)
	{
		printf("%d ", arr[i]);
		i++;
	}

	return 0;
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-10-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 5. 字符串+转义字符+注释
    • 5.1 字符串
      • 5.2 转义字符
        • 5.3 注释
        • 6. 选择语句
        • 7. 循环语句
        • 8. 函数
        • 9. 数组
          • 9.1 数组定义
            • 9.2 数组的下标
              • 9.3 数组的使用
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档