欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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"; //使用字符...

字符串+转义字符+注释

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

C语言学习笔记(二)

为什么第二行打印,切打印出来乱码呢?
因为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

相关标签: c语言 字符串