首页 > 系统相关 >嵌入式基础:Linux C语言:Day7

嵌入式基础:Linux C语言:Day7

时间:2024-12-04 23:28:38浏览次数:6  
标签:初始化 Day7 C语言 char 地址 数组 Linux 字符串 指针

重点函数:strlen()函数\strcpy()函数\strcat实现\strcmp()实现

一、字符数组

<1> 概念

字符数组本质上就是一个数组,保存一个个字符,也一般用来保存字符串

字符串由多个字符组成的一个字符组,一般用“ ”括起来

<2> 定义: char 数组名[数组长度];

<3> 初始化:

单字符全部初始化

单字符部分初始化

不填数组长度的初始化

以字符串对字符数组初始化

        以字符串对字符数组初始化:不加{}

二、字符串的输入输出

<1> 字符串的输出

printf()输出: printf("%s\n",字符串首地址)

puts输出: puts(字符串首地址/字符数组名)

<2> 字符串的输入

gets()输入: gets(保存输入的字符串的空间首地址/数组名)

scanf()输入

三、对字符串的相关处理函数的使用

<1> 数组清空:所谓的数组清空就是让数组中所有的成员数据全部变为0

定义数组时就初始化为0

bzero()函数

#include <strings.h>

 void bzero(void *s, size_t n);

 功能:实现数组的清空

 参数:

     s:要清空的数组首地址(数组名)

     n:填写数组大小就可以

返回值:无

ex;

bzero(数组名,sizeof(数组名));

memset()函数

void *memset(void *s, int c, size_t n);

功能:将指定的内存中数据设置为指定大小,可以用于数组清空

6.2 strlen()函数计算数组的长度

#include <string.h>

size_t strlen(const char *s);

功能:计算字符串的长度,'\0'之前的字符串数量

参数:

    s:要计算长度的字符串首地址(数组名)

返回值:成功会返回计算到的字符串长度

6.3 strcpy()函数实现字符串的复制

char *strcpy(char *dest, const char *src);

功能:将一个字符串复制到另一个数组空间中

参数:

    dest:目标空间首地址

    src:要复制的字符串的首地址

    

返回值:函数调用成功返回一个指向复制后字符串的首地址

ex:

  char buf[]="hello world";

  char buf1[20]={0};

  strcpy(buf1,buf);//将buf中保存的字符串复制到buf1中

 char *strncpy(char *dest, const char *src, size_t n);

 功能:实现复制指定大小的字符串

 参数:

     desc:保存复制后字符串的数组首地址

     src:原字符串首地址

     n:复制原字符串前n个字符到目标数组中

返回值:函数调用成功返回一个指向复制后字符串的首地址

strcat实现字符串的拼接

#include <string.h>

char *strcat(char *dest, const char *src);

 功能:实现两个字符串的拼接

 参数:

     desc:要拼接的第一个字符串首地址,也是拼接后字符串首地址

     src:要拼接的第二个字符串首地址     

返回值:成功返回拼接后字符串的首地址

char *strncat(char *dest, const char *src, size_t n);

功能:实现指定长度的字符串的拼接,将src字符串前n个字符拼接到desc字符串的

    后面

参数:

    desc:要拼接的第一个字符串首地址,也是拼接后字符串首地址

     src:要拼接的第二个字符串首地址

     n:要拼接的src中字符的个数

返回值:成功返回拼接后字符串的首地址

strcmp()实现字符串的比较

#include <string.h>

int strcmp(const char *s1, const char *s2);

功能:实现两个字符串的比较

参数:

    s1:要比较的第一个字符串

    s2:要比较的第二个字符串

返回值:    

    当两个字符串相等时,函数返回0

    当s1字符串比s2字符串大,此时返回一个正整数

    当s2字符串比s2字符串大,此时返回一个负整数

 int strncmp(const char *s1, const char *s2, size_t n);

功能:进行两个字符串前n个字符的比较

参数:

    s1:要比较的第一个字符串

    s2:要比较的第2个字符串

    n:要比较两个字符串前n个字符

返回值:    

    当两个字符串相等时,函数返回0

    当s1字符串比s2字符串大,此时返回一个正整数

    当s2字符串比s2字符串大,此时返回一个负整数

二、二维字符数组

<1> 概念:本质就是一个二维数组

<2> 初始化

只讨论保存字符串时的初始化;

        char 数组名[行数][列数]={“字符串1”,“字符串2”,......}

<3> 输出:输出各行的方法:以字符串形式输出,以下标代表各行:

name[0]:第0行内容

name[2]:第1行内容

name[3]:第3行内容

三、指针

<1> 指针就是地址

<2> 定义 数据类型* 指针变量名

<3> 初始化

NULL

int *p=&a 存入某个地址

int *p=q: 另一个指针变量给其初始化

<4> 空指针和野指针

空指针:用NULL初始化的指针

野指针:没初始化的指针为野指针;严重可导致程序崩溃;应避免野指针的出现

<5> 通过指针访问变量的数据

        在除了定义指针情况外,再次使用*,表示该指针指向内存的数据

<6> 指针的大小

32位系统中,指针为4字节;64位系统中,指针为8字节大小

标签:初始化,Day7,C语言,char,地址,数组,Linux,字符串,指针
From: https://blog.csdn.net/qq_53627084/article/details/144252560

相关文章

  • Win10下安装WSL(Windows Subsystem for Linux)
    启用WSL(WindowsSubsystemforLinux)管理员权限运行powershell并运行下面的命令C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exeEnable-WindowsOptionalFeature-Online-FeatureNameMicrosoft-Windows-Subsystem-Linux  或者:控制面板->程序和功能->启......
  • Linux Git新手入门 git常用命令 Git全面指南:基础概念、操作与远程仓库、标签、分支全
    一、GIT基础概念介绍        请记住下面这些关于Git的概念。Git有三种状态,你的文件可能处于其中之一: 已提交(committed)、已修改(modified) 和 已暂存(staged)。已修改表示修改了文件,但还没保存到数据库中。已暂存表示对一个已修改文件的当前版本做了标记,使之包......
  • c语言:语句详解
    算法的概念及特点在说c语句前我们先了解一下算法的概念及特点广义的说、为解决一个问题采取的方法和有限的步骤,就称为“算法”数据结构+算法=程序数据结构:对数的描述算法:操作的步骤就比如把大象放进冰箱里需要几步:对我们程序员来说把大象放进冰箱里只需要三步1......
  • Linux挂载U盘,SD卡
    Linux挂载U盘,SD(TF)卡1.插入U盘,执行如下指令后能看到设备则说明连接成功sudofdisk-l#查看外接设备名称,一般为/dev/sd...,这里假设为/dev/sdc12.在/mnt下创建挂载点,进行挂载sudomkdir/mnt/mydev#创建挂载点sudomount/dev/sda1/mnt/mydev#将/dev/sdc1挂载到mnt中的挂......
  • 嵌入式C语言中串口输出重定向实现
        嵌入式学习、做项目,经常都会用到串口,而用串口最多的时候,就是类似printf这种打印输出的时候。比如:打印输出日志信息打印输出调试信息查看实时数据等    而printf基本都会用到“重定向串口” ,本文结合这个问题,来简单分享一下相关内容。嵌......
  • Linux网络编程——进程、线程同步方式
    线程同步与进程同步方式要注意这里的同步并不是指同时进行的意思,而是按照先后顺序依次进行。首先了解一下同步与互斥的概念:同步:多个进程因为合作产生的直接制约关系,使得进程有一定的先后执行关系;互斥:多个进程在同一时刻只有一个进程能进入临界区。一、进程同步方式进程同......
  • Linux: Centos 安装 docker
    解决方案安装需要的软件包yuminstall-yyum-utilsdevice-mapper-persistent-datalvm2安装阿里云镜像yum-config-manager--add-repohttp://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo安装dockeryuminstall-ydocker-ce查看版本,查看是否安装成功......
  • linux按键的几种实现方式
    Linux按键有哪些实现方法常用的按键实现方法继点亮了LED和OLED之后,该讲讲我常用的键盘怎么实现的了。才入行的时候,想实现一个按键监测功能,对linux驱动也是一无所知。只会基础的在sys/class/gpios/目录下操作gpio,好一点的驱动呢,还支持在sys下配置edge(触发类型),支持上升沿......
  • 『Linux』 第五章 基础IO
    1.理解“文件”1.1狭义理解 文件在磁盘里磁盘是永久性存储介质,因此文件在磁盘上的存储是永久性的磁盘是外设(即是输出设备也是输入设备)磁盘上的文件本质是对文件的所有操作,都是对外设的输入和输出简称IO1.2广义理解Linux下一切皆文件(键盘、显示器、网卡、磁盘……......
  • linux ssd1307fb驱动适配总结
    linuxssd1307fb驱动适配总结linuxframebuffer点亮oled屏幕继第一篇文章,点亮了LED指示灯之后,正好手里有一个小模块,OLED显示屏。同样也是需要点亮的,那就继续点亮更多的东西吧。现在项目是越来越扣成本了,以前最少也是用一个彩色的串口屏,现在已经降级到使用黑白的OLED点阵......