Day10 C基础(字符数组二维数组)

字符数组

字符数组的输入输出

输入

char str[32] = {};

1.scanf(“%c”, &str[i])
scanf(“%s”, str);
输入的字符串不能含有空格,因为 scanf 输入字符串遇到空格或 \n 都会认为字符串输入 结束,空格后面的内容就不再存放到数组当中
如果需要输入空格可以使用下面的格式:
scanf(“%[^\n]”, str);
2.gets
char *gets(char *s);
功能:从终端获取字符串
参数:s:目标字符数组的首地址
返回值:目标字符数组的首地址

输出

1.printf(“%s\n”, str);
2.for(int i = 0; i < 32; i++)
{
printf(“%c”, str[i]);
}
printf(“\n”);

3.puts
int puts(const char *s)
功能:向终端输出字符串
参数:s:要输出字符数组的首地址
返回值:输出字符的个数

计算字符串的实际长度

1.for循环遍历数组,直到 /0 为止
for(n = 0; buf[n] != ‘\0’, n++);
2.strlen
#include <string.h>
size_t strlen(const char *s);
功能:计算字符串的实际长度(不包括 \0)
参数:s:要计算的字符串的首地址
返回值:字符串的实际长度

sizeof 和 strlen 的区别

1.sizeof是关键字,strlen是函数
2.sizeof 是计算数据所占空间大小,strlen 计算字符串的实际长度
3.sizeof 计算包括 \0,strlen计算不包括 /0,计算字符串长度时(元素个数省略情况下),sizeof比strlen 大1

冒泡排序

选择排序:

二维数组

1.格式:

存储类型 数据类型 数组名[行数][列数]
int arr[2][3];

2.访问元素

数组名[行下标][列下标]; (下标从0开始)
arr[0][0]:第一行第一列的元素
arr[1][2]:第二行第三列的元素
行下标、列下标都不能越界

行数可以省略,但是列数不能省略
int arr[][3];

3.数组元素个数:

行数 * 列数

sizeof(数组名) / sizeof(数据类型)

4.二维数组的大小:

sizeof(数组名)
数据类型大小* 元素个数

5.数组名

arr:第一行的首地址
arr+1:第二行的首地址

6.初始化

1)全部初始化:
int arr[2][3] = {1, 2, 3, 4, 5, 6};
printf(“%d %d %d\n”, arr[0][0], arr[0][1], arr[0][2]); // 1 2 3
printf(“%d %d %d\n”, arr[1][0], arr[1][1], arr[1][2]); // 4 5 6

2)部分初始化:未初始化的部分元素值为0
int arr[2][3] = {1, 2, 3, 4}; // 顺序赋值
printf(“%d %d %d\n”, arr[0][0], arr[0][1], arr[0][2]); // 1 2 3
printf(“%d %d %d\n”, arr[1][0], arr[1][1], arr[1][2]); // 4 0 0

int arr[2][3] = {{1, 2}, {4, 5}};  // 按行赋值   1 2 0 4 5 0

3)未初始化:随机值,需要单独的赋值
int arr[2][3];

内存分配

在这里插入图片描述

// a 和 a[0] 并不完全相同,级别不同,后面会讲,数值上是一样的,级别不一样
// a 是行地址
// a[0] 是列地址

// a 表示 第一行的首地址
// a+1 表示 第二行的首地址
// a[0] 表示第一行第一列的地址
// a[1] 表示第二行第一列的地址

  • 79
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用中的代码片段展示了如何使用C语言中的strcpy函数将一个二维数组复制到另一个数组中。在这个例子中,数组a为一个3行1列的二维数组,数组d为一个1行3列的二维数组。首先,通过循环将数组a中的元素输入。然后,通过嵌套的循环将数组a的元素复制到数组d中,并使用printf函数打印出复制后的结果。可以看到,strcpy函数被用来复制数组元素。 引用中的代码片段展示了如何使用C语言中的strcpy函数对一个二维数组进行排序。在这个例子中,数组arr为一个5行10列的二维数组,包含了一些字符串。通过调用sort_arr函数,可以对这些字符串进行冒泡排序。在排序过程中,使用strcmp函数比较字符串的大小,如果前一个字符串大于后一个字符串,则交换它们的位置。最后,通过调用print_arr函数,可以打印出排序后的数组。 综上所述,strcpy函数是C语言中用于复制字符串的函数,可以用来复制二维数组中的元素。在引用和引用中,它们分别展示了将二维数组复制到另一个数组和对二维数组进行排序时的应用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [初学C语言-二维数组字符数组](https://blog.csdn.net/czh2637750821/article/details/110200445)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Day 24 C语言学习 二维字符数组 练习](https://blog.csdn.net/qq_59947178/article/details/126770876)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值