1-3 C语言字符串

字符串

"abcdef"

由字符号串引起来的一串字符被称之为字符号串字面值,或者简称字符号串

注:字符串的结束标志是\0的转义字符,在计算字符串长度的时候\0是结束的标志,不算做字符号串内容

进入调试模式可以看到字符串末尾隐藏了一个\0是字符号串结束的标志

 字符串第二种需要手动添加字符串结束的标志

#define  _CRT_SECURE_NO_WARNINGS
#include "stdio.h"
#include "stdlib.h"
#include "math.h"



int main() {
	char ch = 'c';
	// c语言中有没有字符串类型
	char arr[] = "abcdef";
	printf("%s\n", arr);
	char arr2[] = { 'a','b','c','d','e','f' ,'\0'};
	printf("%s\n", arr2);
	return 0;
}

strlen 求取字符串长度的库函数,使用strlen需要引用头文件string.h

#define  _CRT_SECURE_NO_WARNINGS
#include "stdio.h"
#include "stdlib.h"
#include "math.h"
#include <string.h>


int main() {
	char ch = 'c';
	// c语言中有没有字符串类型
	char arr[] = "abcdef";
	printf("%s\n", arr);
	char arr2[] = { 'a','b','c','d','e','f' ,'\0'};
	printf("%s\n", arr2);
	int len = strlen("abc");
	printf("len = %d\n", len);
	return 0;
}

字符号串结束的标志是很重要的没有\0结尾的情况下使用strlen求取字符号串长度可能会出现一个随机的值。


转义字符

定义:转义字符就是转变原来字符含义的字符 使用\来表示

c语言中的转义字符

%d --- 打印整形,输出一个10进制的数

%c --- 打印字符 ,输出字符类型的数据

%s --- 打印字符串 ,输出字符串类型的数据

%f --- 打印浮点数或小数 ,输出浮点数或者是小数数据

%lf --- 打印double类型的数据 ,输出双精度类型的小数数据

%zu --- 打印sizeof()的返回值 ,输出sizeof打印的返回值

字符: \? 用法: 在书写连续的多个问号时使用,防止他们被解析成三字母字符

字符 ' 用法:用于表示字符常量' 让单引号不再是一对单引号中的某一个

字符 \ 用于表示一个反斜杠,防止他被编译器解析为转义字符

字符 \ b 表示退格符

字符 \f 表示进纸符

字符 \n 表示换行

字符 \r 表示回车

字符 \t 表示制表符

字符 \v 表示垂直制表

字符 \ddd ddd表示1-3个8进制数字

字符 \xdd dd 表示2个16进制的数字

字符 \a 蜜鸣符,触发电脑声音

#define  _CRT_SECURE_NO_WARNINGS
#include "stdio.h"
#include "stdlib.h"
#include "math.h"
#include <string.h>
/*
   c 语言中的打印字符
   %d ---  打印整形
   %c ---  打印字符
   %s ---  打印字符串
   %f ---  打印浮点数或小数
   %lf --- 打印double类型的数据
   %zu --- 打印sizeof的返回值
*/
int main() {
	printf("abcd\??\n");

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

	printf("abcdef\\0\n");

	// 字符串路径打印的写法
	printf("c:\\test\\test.c\n");

	printf("\a");
	return 0;
}

以上程序输出的结果

注:转换出来的ASCII值要包含在ASCII的范围内也就是0-127之间,超出这个范围就没有意义了


转义字符练习

【求字符串长度】

#define  _CRT_SECURE_NO_WARNINGS
#include "stdio.h"
#include "stdlib.h"
#include "math.h"
#include <string.h>

int main() {
	//在这里\0也算是字符
	printf("%d\n", strlen("qwer t"));
	printf("%d\n", strlen("c:\test\628\test\.c"));
	return 0;
}

注:在C语言中\t在字符串里面是一个字符


C语言中的注释

在C语言中,注释是用来解释代码功能或提供阅读代码所需信息的一种文本,它不对程序的功能产生直接影响,编译器在编译过程中会直接忽略注释内容。C语言支持两种类型的注释方式: 还有一种额外的注释方式

单行注释:

// 这是一个单行注释的例子
int x = 5; // 初始化x为5

多行注释:

/*
 * 这是一个
 * 多行注释的例子
 */
int y = 10; /* 初始化y为10 */

 推荐的注释方式

在有些语言中,注释有时用于把一段代码“注释掉”,也就是使这段代码在程序中不起作用,但并不将其真正从源文件中删除。在C语言中,这可不是个好主意,如果你试图在一段代码的首尾分别加上/*和*/符号来“注释掉”这段代码,你不一定能如愿。如果这段代码原先就存在注释这样做会出问题。要从逻辑上删除一段C代码,更好的办法是使用#if指令。只要像下面这样使用:

#if     0
   注释的内容
#endif

在#if和#endif之间的程序段就可以有效地从程序中去除,即使这段代码之间原先存在注释也无妨,所以这是一种更为安全的方法,预处理指令的作用远比你想象的要大。

注:

  • 注释不应嵌套使用,特别是在多行注释中。虽然某些编译器可能允许嵌套的多行注释,但这不是标准行为,且可能导致难以预料的结果或编译错误。

  • 确保注释是及时更新的,反映代码的真实意图和功能,避免误导读者。

  • 注释应当简洁明了,提高代码的可读性和可维护性。

注释的作用,对复杂的代码进行解释,提高代码的可读性,写代码的时候写注释是帮助自己帮助别人

补充小知识

学会画图:方便理解内存和指针

通过练习:巩固熟悉语法,练习锻炼编程思维,把实际问题转换为代码能力

调试:借助调试更高的理解和感知代码,借助调试找出代码中的bug


C语言语句

选择语句

if           else 语句 

#define  _CRT_SECURE_NO_WARNINGS
#include "stdio.h"
#include "stdlib.h"
#include "math.h"
#include <string.h>

int main() {
	
	printf("Start study\n");
	printf("improve\n");
	int input = 0;
	scanf("%d",&input);
	// 分支循环语句
	if (input == 1) {
		printf("you will have a top offer\n");
	}
	else {
		printf("you will not have a top offer\n");
	}
	return 0;
}

循环语句

#define  _CRT_SECURE_NO_WARNINGS
#include "stdio.h"
#include "stdlib.h"
#include "math.h"
#include <string.h>

int main() {
	
	int len = 0;
	printf("inter this bite\n");
	while (len < 20000) {
		printf("write code");
		len++;
	}
	if (len == 20000) {
		printf("good offer\n");

	}
	else {
		printf("继续加油\n");
	}
	return 0;
}

C语言函数

#define  _CRT_SECURE_NO_WARNINGS
#include "stdio.h"
#include "stdlib.h"
#include "math.h"
#include <string.h>

#define add(x,y) ((x) + (y))


int ADD(int x,int y) {
	return x + y;
}

int main() {
	int n1 = 0;
	int n2 = 0;
	int sum = ADD(15,20);
	printf("%d\n", sum);
	return 0;
}

函数的使用

#define  _CRT_SECURE_NO_WARNINGS
#include "stdio.h"
#include "stdlib.h"
#include "math.h"
#include <string.h>

#define add(x,y) ((x) + (y))


int ADD(int x,int y) {
	return x + y;
}

int main() {
	int n1 = 0;
	int n2 = 0;
	// 获取用户输入
	scanf("%d %d",&n1,&n2);
	int sum = ADD(n1, n2);
	printf("%d\n", sum);
	return 0;
}

函数解析

数组

-------------------------C语言中的数组------------------------------------------------------------------

数组:要存储一组数据的时候,c语言中对数数组的定义 “一组相同类型元素的集合”

数组是由下标的,数字的下标是从0开始的,数字是通过下标的方式一个个访问数组中的元素的

遍历数组:使用for循环的方式

#define  _CRT_SECURE_NO_WARNINGS
#include "stdio.h"
#include "stdlib.h"
#include "math.h"
#include <string.h>

int main() {
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	int i = 0;
	int length = sizeof(arr) / sizeof(arr[0]);
	for (i = 0; i < length; i++) {
		printf("%d\n", arr[i]);
	}
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值