文章目录

  • 一、数组
    • 1.数组的意义
    • 2.数组类型如何表示
    • 3.数组变量的定义
      • 3.1求数组类型大小
      • 3.2数组的长度
    • 4.数组中成员的使用
      • 4.1数组的下标
      • 4.2如何表示数组成员
    • 5.常见问题
    • 6.冒泡排序
    • 7.字符数组 字符类型数组
      • 7.1定义
      • 7.2物联网 -- 服务器/web -- 上层使用大多是字符串。
      • 7.3定义1个字符型数组
      • 7.4元素表示
      • 7.5对字符型数组初始化
  • 二、字符串(函数)及使用FunctionSelector查找其函数
    • 1.字符串操作函数--字符串复制、连接、比较
      • 1.1格式化输出字符串:
    • 2.字符串函数
      • 2.1strlen()--求字符串长度
      • 2.2strcpy() -- 字符串拷贝函数
      • 2.3strcat() -- 字符串连接函数
      • 2.4strcmp() -- 字符串比较函数
      • 2.5strstr() -- 字符串查找字符串函数(了解)
      • 2.6相关函数查找
        • 2.6.1Linux系统提供了man手册 -- 所有函数解释
        • 2.6.2函数查找器--FunctionSelector
  • 三、二维数组
    • 1.数组的类型怎么表示?类型 []
    • 2.特殊使用:
      • 2.1给二维数组初始化
      • 2.2数组在定义时,长度必须初始化。
      • 2.3数组的类型:类型 [数组的长度] -- 构造类型:代表相同类型数据的集合。
      • 2.4数组中的元素如何表示?
      • 2.5数组中的元素操作

一、数组

1.数组的意义

数组 – 类型 – 构造类型
数组是相同类型数据的集合。

2.数组类型如何表示

类型 [数组长度];//类型 [] char [] int [] float [] double []
类型:4大基本类型 – char int float double 数组 指针 结构体
[] – 一定不可以省略
数组长度 – 定义变量时,告诉编译器,该数组要开辟多大空间。

3.数组变量的定义

类型 标识符=初始化;
标识符:1.数字字母和下划线组成
2.数字不可以放开头
3.不能与关键字相同
4.区分大小写

3.1求数组类型大小

sizeof(变量名);单位:字节。

3.2数组的长度

3.2.1数组的长度是常量。
不写长度会报错,提示:不清楚数组变量开辟的空间大小。
3.2.2求一个数组的长度:
sizeof(数组名)/sizeof(数组名[0]);
sizeof(数组类型[数组长度])/sizeof(数组类型);
如:
3.2.3数组的变量如何初始化
如果1个数组没有定义长度,但是有初始化,长度 == 初始化长度。

4.数组中成员的使用

4.1数组的下标

0~数组长度-1

4.2如何表示数组成员

数组名[下标];
ps:有第0个存在,即0、1、、、、n

5.常见问题

5.1
high_all – 类型是什么? 数组 == int [5]
high_all[0] – 类型是什么? int
5.2
数组的元素和普通变量一样使用。
5.2.1给一个元素赋值? – high_all 的第3个元素赋值为180

     int  high_all[5];high_all[3]=180;

5.2.2如何通过scanf给1个元素赋值? 给第2个元素赋值?

     int high_all[5];scanf("%d",&high_all[2]);

5.2.3如何通过printf打印1个成员值? 打印第2个元素的值?

     printf("%d\n",high_all[2]);

5.3
给一个数组整体赋值
5.3.1在定义时,整体赋值
int high_all[5]={160,170,180,190,200};
其他时候,不可以整体赋值,通过for循环来赋值。

扩展:数组开辟的空间是连续的。

int high_all[5]={120,130,140};

数组长度还是5。

6.冒泡排序

int num[5]={88,68,98,78,18}; – 从小到大排列。

#include "stdio.h"int main()
{int num[5]={88,68,98,78,18};//18 68 78 88 98int i=0,j=0;int temp = 0;for(i=0;i<5;i++)//5个位置{for(j=0;j<4-i;j++)//从[0]~[4-i]个元素进行比较和换位{if(num[j] > num[j+1])//前面的数,大于后面的数,进行交换{temp = num[j];num[j] = num[j+1];num[j+1] = temp;}}}for(i=0;i<5;i++){printf("%d\t",num[i]);}printf("\n");
}

7.字符数组 字符类型数组

7.1定义

char 标识符[数组的长度];
标识符:1.数字 字母和下划线组成
2.数字不可以放开头
3.区分大小写
4.不可以与关键字相同
意义:1.字符型在显示的使用,使用比较多。

7.2物联网 – 服务器/web – 上层使用大多是字符串。

7.2.1.字符串 – 常量 = 如何表示?”china” “1234567890”
字符串长度:china ---- 长度=5 大小=6 (‘c’ ‘h’ ‘i’ ‘n’ ‘a’ ‘\0’) – 字符串结束标志:’\0’
7.2.2.字符串数组:字符数组中包含1个字符串。

7.3定义1个字符型数组

char str[1024];//长度是1024

7.4元素表示

数组名[下标];
str[0]~str[1023];

7.5对字符型数组初始化

如:china

7.5.1字符串数组初始化(用字符串常量初始化)



7.5.2用%s就可以操作字符串 – 字符串有结束标志’\0’

打印上述两个字符串的内容:
printf(“%s\n”,str1);
printf(“%s\n”,str2);
结果未知:

7.5.3把上述字符串数组str1中的 c 变为 C

二、字符串(函数)及使用FunctionSelector查找其函数

1.字符串操作函数–字符串复制、连接、比较

1.1格式化输出字符串:

printf(“%s\n”,”china”);
printf(“%s\n”,存放字符串数组的数组名);

从屏幕上获取字符串:
1.定义1个字符型数组:保存获取到的字符串
2.scanf(“%s”,数组名);

— scanf – 获取字符串时,遇到空格会停止输入。
gets()函数 – 从屏幕上获取字符串
puts() – 输出字符串

2.字符串函数

2.1strlen()–求字符串长度

函数的功能:求一个字符串长度,结果不包含’\0’.
在FunctionSelector中查找该函数:

使用方式:

2.2strcpy() – 字符串拷贝函数

函数的功能:复制粘贴的一个字符串。
在FunctionSelector中查找该函数:

使用方式:

2.3strcat() – 字符串连接函数

函数的功能:将一个字符串连接到另一个字符串后面并打印。
在FunctionSelector中查找该函数:

使用方法:

2.4strcmp() – 字符串比较函数

函数功能: 用于判断两个字符串是否相等 == 0 != 0不相等
使用方法:

结果: str1[下标] - str2[下标]

2.5strstr() – 字符串查找字符串函数(了解)

使用方法:

2.6相关函数查找

2.6.1Linux系统提供了man手册 – 所有函数解释

例如: man gets(Linux命令)
退出:输入q

2.6.2函数查找器–FunctionSelector

三、二维数组

1.数组的类型怎么表示?类型 []

数组的数组:类型 [][]
例如:
int num[3][4]
1.1总结:二维数组类型的表示:类型 [行的长度][列的长度];(理解)
1.2二维数组的变量如何定义? x+y轴 – 表述更多的数据
类型 标识符[行的长度][列的长度];
例如:描述咱们班级的成绩?
使用一维数组:int score[32];
使用二维数组:int score[5][10]; – 更好的定位
例如:GPS数据 东经(西经)、北纬(南纬) – 二维数组表述更好。
1.3二维数组中的元素如何调用?
数组名[行下标][列下标];
行下标:0~行的长度-1
列下标:0~列的长度-1

        int num[3][4];num[0][0] num[0][1] num[0][2] num[0][3]num[1][0] num[1][1] num[1][2] num[1][3]num[2][0] num[2][1] num[2][2] num[2][3]

元素的使用和普通变量一样。

2.特殊使用:

2.1给二维数组初始化



没有初始化的位置自动补0:

2.2数组在定义时,长度必须初始化。

//可以省略行长度,不能省略列长度
省略行的长度:

2.3数组的类型:类型 [数组的长度] – 构造类型:代表相同类型数据的集合。

类型:char int float double 数组 指针 结构体

2.4数组中的元素如何表示?

数组名[下标]。
下标:0~数组的长度-1

2.5数组中的元素操作

– 和普通变量一样。

C语言基础——数组与字符串相关推荐

  1. 黑马程序员——C语言基础--数组和字符串

    ---------------------- Java培训.Android培训.iOS培训..Net培训.期待与您交流! ---------------------- 数组 什么是数组? 数组是一组数 ...

  2. java 数组 字符串 编程_Java语言基础知识之字符串数组

    Java语言基础知识之字符串数组 java语言中,数组是一种最简单的复合数据类型.数组是有序数据的集合,数组中的每个元素具有相同的数据类型,可以用一个统一的数组名和下标来唯一地确定数组中的元素.数组有 ...

  3. C语言基础知识:字符串赋值

    C语言基础知识:字符串操作 链接: link. 字符串赋值的三种可行形式: 1.初始化时赋值字符串 char a[10]="hello"; char *a = "hell ...

  4. C语言基础:使字符串倒序输出

    C语言基础:使字符串倒序输出 1. 用字符指针作形参 例1: void reverse1(char *s) {char* p=s+strlen(s)-1;char t;while(s<p){t= ...

  5. Java语言基础(数组)

    Java语言基础(数组概述和定义格式说明) A:为什么要有数组(容器) 为了存储同种数据类型的多个值 B:数组概念 数组是存储同一种数据类型多个元素的集合.也可以看成是一个容器. 数组既可以存储基本数 ...

  6. c 语言 字符 r,R语言基础教程之字符串

    原标题:R语言基础教程之字符串 在R中的单引号或双引号中写入的任何值都将被视为字符串.在R内部将每个字符串存储在双引号内,即使您使用单引号创建它们. 适用于字符串构造的规则 字符串开头和结尾的引号应为 ...

  7. C语言 字符数组 和 字符串 详解

    C语言 字符数组 和 字符串 详解 用来存放字符的数组称为字符数组,例如: char a[10]; //一维字符数组 char b[5][10]; //二维字符数组 char c[20]={'c', ...

  8. C语言基础教程 之 字符串

    C语言基础教程目录:https://blog.csdn.net/SparkLee2013/article/details/85229406 1.'x'和"x" 'x'是字符常量,而 ...

  9. C语言字符数组与字符串的使用及加结束符‘\0‘的问题

    1.字符数组的定义与初始化 字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素. char str[10]={ 'I',' ','a','m',' ','h','a','p','p','y ...

最新文章

  1. MVC框架内容-模型
  2. 从大型主机到个人计算机:机器人产业可以从pc普及革命中学到什么?
  3. 每个java程序都至少有一个线程给主线程,java程序在主线程中判断各个子线程状态的操作,该如何解决...
  4. 微信小程序 筛选侧边栏 全选与反全选
  5. 程序员加班一般是有原因的,但是有些程序员却表示:我是自愿的!
  6. phpcms内容页 ( $inputtime ) 去掉发布时间的时分秒 - 代码篇
  7. android 输入法如何启动流程_android输入法02:openwnn源码解析01—输入流程
  8. php urlencode 大写,HttpUtility.UrlEncode 编码输出的字母替小写,怎样改成大写呢
  9. 《数据结构》算法与算法设计
  10. 大数据-数据仓库的概念
  11. 微信小程序 video 播放大视频黑屏
  12. 【Vegas原创】“光驱无法访问,函数不正确”解决方法
  13. 中国标准时间转换成DateTime
  14. sql 闩锁 原因_关于SQL Server中的闩锁
  15. oracle怎样一次多选,如何在Apex Oracle中创建和使用多选列表?
  16. D19-Acwing-实现DP第三节相关代码课程完结撒花~
  17. whm面板降mysql_WHMCS与Cpanel/WHM面板整合方法-Cpanel/WHM管理使用教程 | 麦田一棵葱...
  18. 字节等单位与进制转换
  19. 三维扫描体数据的VTK体绘制程序设计
  20. 计算机读博ccfc有用吗,考研复试面试用细节赢得导师认可

热门文章

  1. C语言 PTA 统计子串在母串出现的次数
  2. 基于SAA7111A的模拟视频转换接口设计
  3. 内网信息收集(Windows)--本机信息收集
  4. 字符串数组输出“烫烫烫”
  5. laravel 主题模板功能扩展包teepluss/theme
  6. Ubuntu20.04安装matlab详细教程
  7. C——教你如何得到一个数的每一位
  8. 基础篇(二).ARMv8寄存器(1)
  9. 电器“服务”焕新生活?香!香!香!
  10. C++ 涛涛的方向感