一维数组、数组排序、 字符数组

1、一维数组

数组是构造数据类型

区分定义数组  和数组元素  (int a[10]      a[10])

必须保证下标不能越界

数组是一个整体,不能直接参与运算,只能对单个元素进行处理。

2、数组排序(冒泡排序)

int a[7] = {3 , 1 , 7 , 23 , 12 , 87 , 2};

//外层循环控制要比较的趟数,n个元素需要比较n-1次

for (int i = 0; i < 6; i++) {

//内层循环控制在每一趟要比较的次数,每进来一次就少比较一次

for (   int j = 0; j < 6 - i; j++) {

//如果前一个元素比后一个大,交换位置

if (a[j]  < a[j + 1]) {

int temp = a[j];

a[j] = a[j + 1];

a[j + 1] = temp;

}

}

}

//打印排序好的数组

for (int i = 0; i < 7; i++) {

printf("%d " , a[i]);

}

//选择排序

int a[5] = {7 , 4 , 6 , 2 , 1};

int k = 0;

for (int i = 0; i < 4; i++) {

k = i;//假设第a[i]元素就是最小值

for (int j = i + 1; j < 5; j++) {

if (a[k] > a[j]) {

k = j;

}

}

if (i != k) {

int temp = a[i];

a[i] = a[k];

a[k] = temp;

}

}

for (int i = 0; i < 5; i++) {

printf("%-3d " , a[i]);

}

3、字符数组

char c[] = {‘i‘ , ‘P‘ , ‘h‘ , ‘o‘ , ‘n‘ , ‘e‘};//长度为6

//c语言字符串结束都有\0

char a[6] = "iPhone";//长度为7  ‘\0’

unsigned long result = strlen(a);//遇到\0 结束,\0不需要计算

unsigned long s = sizeof(a);//sizeof()  内存大小

//printf("%s" , a);

//字符串所占的空间 至少要比 字符串长度大1,因为 字符串以 ‘\0’ 表示结束。系统提供的字符串处理函 数是根据 ‘\0’ 来判断字符串是否结束.

printf("%ld " , result);

printf("%ld" , s);

strlen() 计算字符串?长度

strcpy() 字符串拷?贝

strcat() 字符串拼接

strcmp() 字符串?比较

时间: 2024-10-15 22:17:08

一维数组、数组排序、 字符数组的相关文章

【学习ios之路:C语言】一维数组,数组排序,字符数组

1.数组 数组,快速定义多个变量. 数组定义: 数据类型 数组名[数组元素的个数] = {值1, 值2, 值 3}; 数组所占存储空间大小 = 数组元素个数 * 每个元素所占的存储空间大小. %lu  unsigned long 无符号的长整型. 无符号 >=0 sizeof 存储大小值  //用来计算一个变量,类型,以及数组所占存储空间的大小. int a[5] = { 2, 7, 4, 3, 6 };  printf("%lu\n", sizeof(arr)); //5 in

String.getBytes()和String.tocharArray(),字节数组和字符数组的区别

String.getBytes()是将字符串转化为一个字节数组.而String.toCharArray()是将一个字符串转化为一个字符数组. [例如] byte bys[] ="国庆60周年".getBytes(); char chs[]="国庆60周年".toCharArray(); [那么字节数组和字符数组有什么区别呢?] 字节输入流和输出流的read和write方法使用字节数组读写数据,即以字节为基本单文处理数据.因此,字节流不能很好地操作Unicode字符,

实验九:二维数组和字符数组的应用

知识点: 二维数组的定义及引用:1.二维数组的定义: 二维数组的定义形式:类型名   数组名[行长度][列长度]:例如:        int  a[3][2]:        定义1个二维数组a,3行2列,6个元素: int   b[5][10]:        定义1个二维数组a,5行10列,50个元素: 二维数组的引用:行下标的范围:0~行长度-1:                        列下表的范围:0~列长度-1: 字符串的存储和运算可以用一维字符数组实现: 一维字符数组的定义

作业九 二维数组和字符数组的应用

知识点: (1)二维数组的定义形式为: 类型名 数组名 [行长度] [列长度]; (2)引用二维数组的元素要制定两个下标,即行下标和列下标,形式为: 数组名 [行下标] [列下标] (3)行下标的合理取值范围是[0,行长度-1],列下标合理的取值范围是[0,列长度-1]. (4)分行赋初始值,一般形式为: 类型名 数组名 [行长度] [列长度]={{初值表0},-,{初值表k},-}; 然后可把初值表k中的数据一次赋值给第k行的元素. (5) 顺序赋初始值,一般形式为: 类型名 数组名 [行长度

【C++】C++自学旅程(4):数组与字符数组

数组方面基本与C相同.需要注意几个点如下: 一.多维数组 除了一维数组.二维数组,当然还可以实现多维数组(n维都可以),定义和使用方式类比二维数组.多维数组其实就是很多个一维数组的嵌套,数组里面有数组. 二.字符数组 字符数组就是数组元素为字符的数组,但其值得一提的是可以作为字符串使用.C++仍然没有字符串变量,实际上,string并不是C++语言本身具有的基本类型,它是在C++标准库中声明的一个字符串类,用这种类可以定义对象.每一个字符串变量都是string类的一个对象. 一个中文字占2B.

string str将str转字符数组以及字符数组初始化

c和指针(<pointers on c>) 8.1.11 一个字符串,如"hello",一般为字符串常量,可以用它对字符指针赋值,或初始化,相当于把这个字符串常量的首地址赋给这个指针,如: char *p = "hello"; 或者 char *p; p="hello"; C++STL之string 字符串常量不能write能read 但是,当用"hello"给字符数组作初始化时,"hello"

C语言第四讲:一维数组,字符数组

数组: 定义: 数据类型 数组名[数组元素个数] = {值1,值2,....} 本质:快速定义多个 相同数据类型的变量 数组的缺点:定义出来的是 相同数据类型 的变量. 如: int c[5] = {0};//在给定数组元素个数的时候,可以按照该模式,全部赋初值为零 int a[] = {4, 5, 6};//在没有给定数组元素个数的时候,可以按照该模式,此时,一定要写清楚所有的初值. 数组元素的访问: 通过数组名加下标来访问的 如:a[1],切记下标从零开始. 注意:1,数组最后一个元素的下标

C-二维数组作为函数参数, 字符数组

1. 如果函数的参数是一个一维数组, 那么我们在传递的时候, 可以传递二维数组的某1行——一个一维数组 2. 二维数组可以作为函数的参数: 如果函数的参数是一个二维数组, 那么传入的实参也必须是一个相同类型的二维数组 3. 同一维数组一样, 当二维数组作为函数的参数的时候, 函数也是声明的一个指针指向传入的二维数组, 并通过指针对传入的二维数组进行操作 4. 当二维数组作为函数的参数的时候, 行数可以不写, 但是列数必须要写 5. 所以跟一维数组一样, 当二维数组作为函数参数是, 函数的参数还要

46 字符数组和字符串

1,用来存放字符的数组称为字符数组 2,字符数组实际上是一系列字符的集合,也就是字符串(String),在C语言中,没有专门的字符串变量,没有 string 类型,通常就用一个字符数组来存放一个字符串 3,C语言中,字符串实际上是使用  null 字符 ( ' \0 ' ) 终止的一维字符数组,因此,一个以 null 结尾的字符串,包含了组成字符串的字符. 4,' \0 ' 是 ASCII 码表中的第0个字符,用NULL表示,称为空字符,该字符既不能显示,也不是控制字符,输出该字符不会有任何效果

字符数组的定义与使用详细解析

1. 字符数组的定义: 用来存放字符量的数组称为字符数组. 形式数值数组相同.例如: char c[10]; 由于字符型和整型通用,也可以定义为int c[10],但这时每个数组元素占2个字节的内存单元. 字符数组也可以是二维或多维数组.例如: char c[5][10]; 即为二维字符数组. 2. 字符数组的初始化 第一种方法是分别对每一个元素进行赋值操作: 字符数组也允许在定义时作初始化赋值.例如: char c[10]={'c', '  ', 'p', 'r','o', 'g', 'r',