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

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


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

5.1 字符串

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

#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,我们该如何写代码?

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

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

image.png

这里就不得不提一下转义字符了,转义字符顾名思义就是转变意思。

下面我们就来看一些转义字符:

转义字符 释义
\? 在书写连续多个问号时使用,防止他们被解析成三字母词
\’ 用于表示字符常量’
\" 用于表示一个字符串内部的双引号
\\ 用于表示一个反斜杠,防止它被解释为一个转义序列符
\a 警告字符,蜂鸣
\b 退格符
\f 清屏并换页符
\n 换行
\r 回车
\t 水平制表符
\v 垂直制表符
\ddd ddd表示1~3个八进制的数字
\xdd dd表示2个十六进制数字

  • 问题1:如何打印(are you ok??)
#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:如何打印’
#include <stdio.h>
int main()
{
    printf("%c\n",'\'');
    return 0;
    //%c - 打印字符,且是单个字符
    //%d - 打印整型
    //%f - 打印浮点数(小数)
    //%s - 打印字符串
}

  • 问题3:如何打印"
#include <stdio.h>
int main()
{
    printf("%s\n","\"");
    return 0;
}

  • 问题4:如何打印c:\code\test.c
#include <stdio.h>
int main()
{
    printf("c:\\code\\test.c");//\t是一个转义字符,为了不让\是\t中的\,则需在\前再加一个\,以此来转义\;在一个路径里面你想要一个\,那就要写出两个\
    return 0;
} 

  • 问题5:\a的用法
#include <stdio.h>
int main()
{
    printf("\a");
    return 0;
}

  • 问题6:\b的用法

image.png


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

  • 问题8:\n的用法

image.png


  • 问题9:\r的用法
      此处\r所代表的回车与键盘上我们所用的回车键是有所区别的。\r的效果是输出回到本行行首,结果可能会将这一行之前的输出覆盖掉,也就是说,\r (要与\n区别开来,\n是换行的,而\r是不换行的)后边的数字替代这一行最开始的相等数目的数字。
#include <stdio.h>
int main()
{
    printf("123456\r789");//打印出来是789456
    return 0;
}

  • 问题10:\t的用法

image.png


  • 问题11:\v的用法
#include <stdio.h>
int main()
{
    printf("123\v456");
    return 0;
    //打印出来是
    //123
    //   456
}

  • 问题12:\ddd的用法
    image.png
      \ddd中的ddd表示1-3个八进制的数字。130这个8进制数字转成10进制数字,作为ASCII码值,表示的字符就是‘X’。

附:

image.png



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

5.3 注释

  • 代码中有不需要的代码可以直接删除,也可以注释掉
  • 代码中有些代码比较难懂,可以加一下注释文字

注释有两种风格:

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

6. 选择语句

#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语句(后期讲)
#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. 函数

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

image.png

9. 数组

9.1 数组定义

要存储1-10的数字,怎么存储?

C语言中给了数组的定义:一组相同类型元素的集合

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开始的。数组可以通过下标来访问。

#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 数组的使用

#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;
}


目录
相关文章
|
1月前
|
存储 编译器 C语言
C语言难?深度剖析第一段C语言代码—带你快速入门C语言
C语言难?深度剖析第一段C语言代码—带你快速入门C语言
52 0
|
8天前
|
存储 C语言
通过这14点,让你快速入门C语言(4)
通过这14点,让你快速入门C语言(4)
8 0
|
8天前
|
存储 编译器 C语言
通过这14点,让你快速入门C语言(3)
通过这14点,让你快速入门C语言(3)
8 0
|
8天前
|
Java 编译器 C语言
通过这14点,让你快速入门C语言(1)
通过这14点,让你快速入门C语言(1)
18 0
|
6月前
|
Java 编译器 C语言
C语言快速入门
C语言快速入门
|
11月前
|
程序员 C语言
【C语言初阶】万字解析,带你0基础快速入门C语言(下)1
【C语言初阶】万字解析,带你0基础快速入门C语言(下)
45 0
【C语言初阶】万字解析,带你0基础快速入门C语言(下)1
|
11月前
|
存储 C语言
【C语言初阶】万字解析,带你0基础快速入门C语言(下) 2
【C语言初阶】万字解析,带你0基础快速入门C语言(下)
60 0
|
11月前
|
编译器 程序员 C语言
【C语言初阶】万字解析,带你0基础快速入门C语言(上)2
【C语言初阶】万字解析,带你0基础快速入门C语言(上)
110 0
|
11月前
|
存储 数据处理 C语言
【C语言初阶】万字解析,带你0基础快速入门C语言(上)1
【C语言初阶】万字解析,带你0基础快速入门C语言(上)
50 0
|
3天前
|
C语言
C语言prinf函数
C语言prinf函数
10 4