首页 > 其他分享 >循环结构,相关操作字符的库函数,数组

循环结构,相关操作字符的库函数,数组

时间:2023-07-13 20:36:34浏览次数:46  
标签:字符 arr int 循环 数组 printf include 库函数

一,三大循环语句

1. while循环
当你不知道循环次数时,可以使用while循环

#include <stdio.h>

int main()
{
	int i = 123;
	int j = 0;
	while(i != j)
	{
		scanf("%d",&j);
	}
	printf("匹配成功\n");
	
	return 0;
}

image
以上代码的循环判断条件是i != j当条件一直成立时,它就会一直循环让用户输入j的值,知道当i == j时循环终止,执行打印语句。在这里面,你就不知道循环什么时候结束,不知道它的具体循环次数,所以可以 使用了while循环。while循环执行的次数是0次或多次。。如何使while循环一直循环呢,也就是我们所说的死循环,那么只要使while的循环条件一直为真,可以这样写while(1),它就会一直执行循环体。
2. for循环
for循环知道了具体的循环次数,知道它的结束条件

#include <stdio.h>

int main()
{
	//打印0~10数字
	for (int i = 0; i <=10; ++i)
	{
		printf("%d\t", i);
	}
	printf("\n");

	return 0;
}

image
我们知道要打印0~10数字,所以知道了计数器i最大只能取到10,所以for循环的终止条件就是i <= 10。for循环的执行次数是0次或多次。对于for循环要想它变成一个死循环,它的写法是for(;;),过后就会一直执行循环体。对于for循环条件的执行顺序是:
image
初始化条件只会执行一次
3. do while循环
do while循环至少执行一次,也就是,它先执行循环体,然后再判断条件。

#include <stdio.h>

int main()
{
	int i = 0;
	do
	{
		++i;
		printf("i = %d\n", i);
	}while(i < 5);

	return 0;
}

按逻辑是i < 5打印结果不会到5,而结果是:
image
说明i = 5是先打印的,然后再去判断i < 5的。


二. 相关操作字符的库函数

以下函数都在#include <ctype.h)头文件中

1.isalnum(int c):作用是判断参数字符c是不是字母或数字,需要注意的是在C语言中,字符就是整数。如果参数c是字母或数字那么就返回非0,反之就返回0。

#include <stdio.h>
#include <ctype.h>

int main()
{
	printf("%d\n",isalnum('1'));
	printf("%d\n",isalnum('a'));
	printf("%d\n",isalnum('A'));
	printf("%d\n",isalnum('-'));

	return 0;
}

image
2.isalpha(int c):作用是判断参数字符c是不是英文字母,如果参数c是英文字母那么返回值就为真,反之就为假。

#include <stdio.h>
#include <ctype.h>

int main()
{
	if(isalpha('A'))
	{
		printf("是一个字母\n");
	}
	else
	{
		printf("不是一个字母\n");
	}

	return 0;
}

image
3.isdigit(int c):作用是判断参数字符c是不是数字,如果参数c是数字那么返回值就为真,反之就为假。

#include <stdio.h>
#include <ctype.h>

int main()
{
	if(isdigit('1'))
	{
		printf("是一个数字\n");
	}
	else
	{
		printf("不是一个数字\n");
	}

	return 0;
}

image

4.islower(int c):判断字符c是否是小写字母
5.isupper(int c):判断字符c是否是大写字母
以上两个库函数作用是判断字符c是否是大小写字母,如果是大/小写字母返回值就为真,否则为假。

#include <stdio.h>
#include <ctype.h>

int main()
{
	if(islower('a'))
	{
		printf("是一个小写字母\n");
	}
	else
	{
		printf("不是一个小写字母\n");
	}

	if(isupper('A'))
	{
		printf("是一个大写字母\n");
	}
	else
	{
		printf("不是一个大写字母\n");
	}

	return 0;
}

image
6.tolower(int c):如果字符c是大写字母就把它转换成小写字母,如果c本身就是小写字母,就不会转换。
7.toupper(int c):如果字符c是小写字母就把它转换成大写字母,如果c本身就是大写字母,就不会转换。

#include <stdio.h>
#include <ctype.h>

int main()
{
	printf("%c\n", tolower('A'));
	printf("%c\n", tolower('a'));
	printf("%c\n", toupper('a'));
	printf("%c\n", toupper('A'));

	return 0;
}

image
8.isxdigit(int c):检查字符c是不是十六进制字符(0-9,a-f或A-F),如果是就返回非零0,否则就为0。

#include <stdio.h>
#include <ctype.h>

int main()
{
	printf("%d\n", isxdigit('A'));
	printf("%d\n", isxdigit('a'));
	printf("%d\n", isxdigit('1'));
	printf("%d\n", isxdigit('G'));

	return 0;
}

image

三. 数组

  1. 一维数组
    定义:数组就是一组相同数据类型数据的集合。
    初始化:int arr[10] = {0};数组一旦定义就会在内存里开辟一块空间用来存放数组的。例如arr数组里一共有10个int类型的空间大小用来存放元素,并全部初始化为0。而数组名arr存放的是数组第一位元素的地址。
    访问数组:数组都有下标(索引),数组的下标都是从0开始的,也就是说数组存储了n个元素,那么下标的范围就是0~n-1。arr[0]就是第一个元素,arr[1]就是第二个元素,,,arr[n-1]就是最后一个元素。
    我们常用for循环来初始化和遍历数组。
#include <stdio.h>

int main()
{
	int arr[10] = {1,2,3,4,5,6,7,8,9,10};
	int size = sizeof(arr) / sizeof(arr[0]);//利用sizeof可以算出数组长度
	for (int i = 0; i < size; ++i)
	{
		printf("%d ", arr[i]);
	}
	printf("\n");

	return 0;
}

image
2. 二维数组
二维数组本质上就是多个一维数组,它的每个元素是一个一维数组。int arr[2][3] = {0},在此就定义并初始化了一个两行三列的二维数据里面的元素都为0,二维数组的初始化可以省略行但不能省略列也就是说定义二维数组可以写成int arr[][3];,但不能定义成int[2][];,这样编译会报错。同样也可以用for循环初始化和便利二维数组。

#include <stdio.h>

int main()
{
	int arr[2][3] = {{1,2,3},{4,5,6}};
	for (int i = 0; i < 2; ++i)
	{
		for (int j = 0; j < 3; ++j)
		{
			printf("%d ", arr[i][j]);
		}
		printf("\n");
	}

	return 0;
}

image
3. 三维数组
三维数组的本质是它的每一个元素是一个二维数组,而每一个二维数组的元素又是一个一维数组。

#include <stdio.h>

int main()
{
	int arr[2][3][4] = {{{1,2,3,4},{4,5,6,7},{1,2,3,4}},{{4,5,6,7},{1,2,3,4},{5,6,7,8}}};
	for (int i = 0; i < 2; ++i)
	{
		for (int j = 0; j < 3; ++j)
		{
			for (int k = 0; k < 4; ++k)
			{
				printf("%d ", arr[i][j][k]);
			}
			printf("\n");
		}
	}

	return 0;
}

image

标签:字符,arr,int,循环,数组,printf,include,库函数
From: https://www.cnblogs.com/bcc0729/p/17548573.html

相关文章

  • Sunday字符串匹配
    引入Sunday算法是一种极其容易理解的算法,复杂度较为玄学。事实上,这个算法没啥用实现Sunday算法的实现只比暴力匹配多了一个步骤,它在匹配失败时关注的是主串中参与匹配的最末尾字符的下一位字符,分为两种情况:该字符没有在模式串中出现过,移动位数=模式串长度+1该字符在模式串......
  • Java如何将数组转换为集合?
    在Java中,可以使用`Arrays`类的`asList()`方法将数组转换为集合。该方法接受一个数组作为参数,并返回一个包含数组元素的固定大小的列表。以下是将数组转换为集合的示例:String[]array={"item1","item2","item3"};List<String>list=Arrays.asList(array);在上述示例中,......
  • 2.1、字符比较
    strcmp()strcmp(str1,str2)=return0;<return-1;>return1;mysql>selectstrcmp((substr(database(),1,1)),0x73);+---------------------------------------+|strcmp((substr(database(),1,1)),0x73)|+---------------------------------------......
  • 2.2、字符串截取函数
    substring() mysql>selectsubstring('abc',1,1);+----------------------+|substring('abc',1,1)|+----------------------+|a|+----------------------+1rowinset(0.00sec)   mid() mysql>selectmid((selectdatabas......
  • JavaScript 中获取数组最后一个元素3种方法及性能
    当需要从JavaScript中的数组中获取最后一个元素时,有多种选择,本文将提供3种可用方法。1.数组length属性length属性返回数组中元素的数量。从数组的长度中减去1得到数组最后一个元素的索引,使用它可以访问最后一个元素。从长度中减去1的原因是,在JavaScript中,数组索引......
  • ChatGPT 问答00003 mysql中删除原来的自增ID,并重新根据字符串字段data字段排序重新生
    在MySQL中,自增ID是由MySQL引擎自动生成和维护的,通常与数据表的主键关联。删除自增ID并重新生成的需求比较特殊,因为自增ID的生成是基于数据表中已有的记录顺序的,直接删除和重新生成可能会破坏数据完整性和索引等方面的约束。不建议直接删除和重新生成自增ID,但你可以通过以下步骤实......
  • 正则表达式符号字符大全
    正则表达式符号字符大全正则表达式[1]由一些普通字符和一些元字符(metacharacters)组成。普通字符包括大小写的字母和数字,而元字符则具有特殊的含义,我们下面会给予解释。在最简单的情况下,一个正则表达式看上去就是一个普通的查找串。例如,正则表达式"testing"中没有包含任何元字符......
  • linux 中 M-cM-^@M-^@M-cM-^@M-^@特殊字符的处理
     001、[root@PC1test01]#lstest.txt[root@PC1test01]#cat-Atest.txt##存在特殊字符 M-cM-^@M-^@M-cM-^@M-^@TomM-cM-^@M-^@M-cM-^@M-^@2012-12-11car53000$JohnM-cM-^@M-^@M-cM-^@M-^@2013-01-13bike41000$TomM-cM-^@M-^@M-cM-^@M-......
  • 【Redis】字符串sds
    sds,即SimpleDynamicStrings,是Redis中存储绝大部分字符串所采用的数据结构。typedefchar*sds;一、类型sds的类型包括SDS_TYPE_5,SDS_TYPE_8,SDS_TYPE_16,SDS_TYPE_32,SDS_TYPE_64五种:#defineSDS_TYPE_50#defineSDS_TYPE_81#defineSDS_TYPE_162#defineSD......
  • 求js数组最大值
    1letarr=[1,2,3,4,5]23letmax=arr.reduce((prev,cur)=>{4returnMath.max(prev,cur)5})67console.log(max)//expectedoutput:5 //找出数组中最大/小的数字constnumbers=[5,6,2,3,7];//使用Math.min/Math.max以及apply函数......