【初识C语言】2

本文介绍了C语言中的字符串概念,包括字符数组、字符串表示、strlen函数、转义字符和ASCII码的应用,以及if-else语句、循环结构和基本函数的使用。
摘要由CSDN通过智能技术生成

【初识C语言】2

字符串

char 字符类型

'a' 字符【单引号】

"abcdef" 字符串【双引号】

C语言中没有字符串类型,【使用双引号,把一串字符引起来,】来表示字符串

int main()
{
char arr[10] = "abcdef";
//char类型的数组,可以放10个字符
//把字符串"abcdef"放入

char arr[] = "abcdef";
//[]里不写数字也可以,系统会根据字符数量自动开辟空间

return 0;
}

\0

 字符串最后会隐藏一个\0

\0:字符串的结束标志

\0占1个字节的空间,但不会打印出来

int main()
{
char arr1[] = "abcdef";//监视程序运行时能看到系统开辟出7个字节的空间
char arr2[] = {'a','b','c','d','e','f'};//6个
printf("%s\n", arr1);//只会打出abcdef,因为隐藏一个\0
printf("%s\n", arr2);//arr2没有在f后面放\0,所以会继续打印,直到遇到\0

return 0;
}

strlen:求字符串长度的库函数 string length

#include <string.h>

int main()
{
int len = strlen("abc");
printf("%d\n", len);//结果为“3”,\0不打印,strlen数字符数时不计\0

return 0;
}
#include <string.h>

#include <stdio.h>

int main()
{
char arr1[] = "abcdef";
char arr2[] = {'a','b','c','d','e','f'};
char arr3[] = {'a','b','c','d','e','f','\0'};

printf("%d\n", strlen(arr1));//打印出6
printf("%d\n", strlen(arr2));//打印出的数未知(因为在找到\0之前strlen会一直数)
printf("%d\n", strlen(arr3));//打印出6

return 0;
}
#include <string.h>

int main()
{
char arr[4] = {'a','b','c'};//指定数组放4个元素,初始化时指定了3个
//【不完全初始化】剩余部分默认初始化为0
printf("%d\n", strlen(arr));//打印出3

return 0;
}
#include <stdio.h>

int main()
{
char arr[8] = {'a','b','c'};//也是不完全初始化

printf("%d\n", strlen(arr));//同样是打印出3

return 0;
}

\0本质是一个转义字符

转义字符

转变原字符的意思

转义字符

\n

换行
\0字符串结束标志
\
\'用于表示字符常量'
\"用于表示一个字符串内部的双引号
\\用于表示一个反斜杠,防止它被解释为一个转义序列符
\a警告字符,蜂鸣
\t水平制表符(Table)
\v垂直制表符
\b退格符
\f进纸符,换页
\r回车
\ddd八进制数字如:\x30 → X
\xdd十六进制数字如:\x30 → 0

%d 打印整型

%c 打印字符

%s 打印字符串

%f 打印float类型的数据

%lf 打印double类型的数据

%zu 打印sizeof的返回值

int main()
{
printf("%c\n", 'w');
printf("abcdef");//只有字符串能这样打印,整型不可以 printf(120);×
printf("%s\n", "abcdef");

//转义字符\
printf("%c\n", ''');//无法打印单引号
printf("%c\n", '\'');//可以打印单引号

printf(""");
printf("\"");

printf("abcd\0ef");
printf("abcd\\0ef");//第一个斜杠是用来转义第二个斜杠的,0是一个单独的字符

return 0;
}

\ddd和\xdd

int main()
{
printf("%c\n", '\130');
//130这个八进制数字转换成的十进制的数字代表的ASCII码值
//130转成十进制为88,查找ASCII码表发现,88代表X
//注意,\130是一个字符

printf("%c\n", '\x63');
//把63这个十六进制数字转化为十进制数字,十进制数字代表的字符

return 0;
}

【注意】ASCII码表可显示字符数量有限,为十进制数字0~127

【练习】求字符串长度

int main()
{
printf("%d\n", strlrn("c:\test\628\test.c"));//14

return 0;
}

注释

/* */ C语言的注释风格(早期)

// C++的注释风格

选择语句和循环语句

 C语言是【结构化】的程序设计语言:顺序结构、选择结构、循环结构

选择语句

if else语句、switch语句等

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

int main()
{
	int input = 0;
	printf("请输入密码\n");

	scanf("%d", &input);

	if (input == 1234)
	{
		printf("凶手是隔壁老王");
	}
	else
	{
		printf("密码错误 系统即将关闭");
	}

	return 0;
}

循环语句

while语句、for语句、do...while语句

//while循环例子

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{
	int time = 0;

	printf("开始战斗\n");

	while (time < 10)
	{
		time++;
		printf("战斗次数:%d\n", time);
	}
	if (time >= 10)
	{
		printf("战斗结束");
	}
	else
	{
		printf("战斗中");
	}

	return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{
	int time = 0;
	int input = 0;

	scanf("%d", &input);
	printf("开始战斗\n");

	while (time < input)
	{
		time++;
		printf("战斗次数:%d\n", time);
	}
	printf("战斗结束");

	return 0;
}

函数

int main()
{
int n1 = 0;
int n2 = 0;

scanf("%d %d", &n1, &n2);

int sum = n1 + n2;

printf("%d\n", sum);

return 0;
}
//Add:函数名;x、y:函数的参数
int Add(int x, int y)
{
int z = 0;
z = x + y;
return z;
}
//大括号里的叫函数体

int main()
{
int n1 = 0;
int n2 = 0;
scanf("%d %d", &n1, &n2);
int sum = Add(n1, n2);

printf("%d\n", sum);

return 0;
}
//简化写法
int Add(int x, int y)
{
return (x + y);
//return x + y;也可以
}

数组

 数组:一组相同类型元素的集合

int arr[10] = {1,2,3,4,5,6,7,8,9,10};
//定义一个整型数组,最多放10个元素

 数组的下标

0,1,2,3,4,5……  【注意】从0开始

访问数组的元素时,可以通过下标实现

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

int i = 0;
while(i < 10)
{
printf("%d ", arr[i]);
i++;
}
//打印全部元素
return 0;
}
//for循环的
#include <stdio.h>

int main()
{
	char arr[5] = { 'a','b','c','d','e' };
	int i = 0;

	for(i=0; i<5; i++)
	{
		printf("%c ", arr[i]);
	}

	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值