C语言学习笔记(二)
程序员文章站
2022-03-07 22:04:50
C语言学习笔记(二)字符串+转义字符+注释(1)字符串(2)转义字符(3)注释字符串+转义字符+注释(1)字符串在C语言中没有字符串类型。只有字符类型。“Hello bit.\n”这种由双引号引起来的一串字符称为字符串字面量,或者简称字符串。注:字符串的结束标志是’\0’ 的转义字符,在计算字符串长度的时候\0是结束标志,不算作字符串内容。#include int main() {char arr[] = "Hello bit\n"; //使用字符...
C语言学习笔记(二)
字符串+转义字符+注释
(1)字符串
在C语言中没有字符串类型。只有字符类型。
“Hello bit.\n”
这种由双引号引起来的一串字符称为字符串字面量,或者简称字符串。
注:字符串的结束标志是’\0’ 的转义字符,在计算字符串长度的时候\0是结束标志,不算作字符串内容。
#include<stdio.h>
int main()
{
char arr[] = "Hello bit\n"; //使用字符数组来存放字符串,'\n'是转义字符:表示换行(就是正常输出Hello bit之后光标定位到下一行)
printf("%s\n", arr);
return 0;
}
注意下面的代码运行的效果
#include<stdio.h>
int main()
{
char arr1[] = "abc";
// arr1: 'a','b','c','\0'
char arr2[] = {'a', 'b', 'c'};
// arr2: 'a','b','c'
printf("%s\n", arr1); //abc
printf("%s\n", arr2); //乱码
return 0;
}
为什么第二行打印,切打印出来乱码呢?
因为arr1 在存储双引号括起来的字符串的时候,默认在字符串的末尾添加了 ‘\0’
arr2这是一个字符数组,数组中只有三个元素,末尾没有’\0’,计算机会在内存中向后不断查找’\0’,将找到的随机值打印出来,找到\0之后才停止!!!
strlen(变量名) 获得字符串的长度
#include<stdio.h>
int main()
{
char arr1[] = "abc";
char arr2[] = {'a', 'b', 'c'};
char arr3[] = {'a', 'b', 'c','\0'};
printf("%d\n", strlen(arr1)); // 3
printf("%d\n", strlen(arr2)); // 15 这个值是不正确的,这个值表示在随机值里面找打了'\0',查找了15个字符才找打的。
printf("%d\n", strlen(arr3)); // 3
return 0;
}
(2)转义字符
C语言中的转义字符:
转义字符 | 意义 | ASCII码值(十进制) |
---|---|---|
\a | 响铃 | 007 |
\b | 退格(BS) ,将当前位置移到前一列 | 008 |
\f | 换页(FF),将当前位置移到下页开头 | 012 |
\n | 换行(LF) ,将当前位置移到下一行开头 | 010 |
\r | 回车(CR) ,将当前位置移到本行开头 | 013 |
\t | 水平制表(HT) (跳到下一个TAB位置) | 009 |
\v | 垂直制表(VT) | 011 |
\ | 代表一个反斜线字符’’’ | 092 |
\’ | 代表一个单引号(撇号)字符 | 039 |
\" | 代表一个双引号字符 | 034 |
? | 代表一个问号 | 063 |
\0 | 空字符(NUL) | 000 |
\ddd | 1到3位八进制数所代表的任意字符 | 三位八进制 |
\xhh | 十六进制所代表的任意字符 | 十六进制 |
#include<stdio.h>
int main()
{
printf("C:\\C_code\\main.c"); // \\两个斜线代表一个斜线
return 0;
}
其他的转移字符需要自己动手练习啊!
#include<stdio.h>
int main()
{
printf("%d\n",strlen("C:\C_code\main.c")); // 14
//14这个结果是怎么出来了的呢?
// \C 和 \m 这两个计算成了2个字符,而不是 4个字符
return 0;
}
(3)注释
注释有两种方式:
(1)// 使用这种注释需要单独占一行,或者在一条一句的后面使用。在一行语句后面使用的时候,直至结尾都会被注释
(2)/* … / 使用这种方式可以进行多行注释,但是不能是嵌套。
/ /* */ */ 这种方式是错误的。
#include<stdio.h>
/*
这是
多行
注释
*/
int main()
{
printf("%d\n",strlen("C:\C_code\main.c")); // 这是单行注释
return 0;
}
本文地址:https://blog.csdn.net/fengdelaodie/article/details/111885693