C语言:字符数组的结束标志,输入输出,使用字符串处理函数等

2023-05-16

文章目录

  • 字符串和字符串结束标志
  • 字符数组的输入输出
    • 用scanf函数输入
  • 使用字符串处理函数
    • puts函数——输出字符串的函数
    • gets函数——输入
    • strcat函数——字符串连接符
    • strcpy和strncpy函数——字符串复制函数
    • strcmp函数——字符串比较函数
    • strlen函数——测字符串长度的函数
    • strlwr函数——转换为小写的函数
    • strupr函数——转换为大写的函数
  • 注意

字符串和字符串结束标志

在c语言中是将字符串作为字符数组来处理的,字符串中的字符是逐个放入数组中的。需要理解的是字符串的实际长度与数组的长度的区别;
字符串的实际长度是我们输入字符串的长度,有多少个字符就有多长,而数组的长度是指定义数组时(c[15]这里的15就是数组的长度)所规定的长度;
c系统在用字符数组存储字符串常量时会自动加一个‘\0’作为结束符,有了结束符,系统输出时在遇到’\0’是就会自动结束;有了结束符字符数组的长度就显得没有那么重要了,我们只需要保证定义时数组的长度始终大于字符串的实际长度;

了解结束符后可以用一下方法对字符数组进行定义:

char c[]={"I am happy"};
//或者可以直接省略花括号
char c[]="I am happy"; 
//注意字符串的两端是用双撇号而不是用单撇号括起来的

而且,这时候数组c的长度不是10,而是11.因为最后由系统自动加了一个‘\0’;
例:

int main()
{
	char c[]="c program."; //定义数组
	printf("%s\n",c);
	system("pause");
	return 0;
}

得到以下结果:
得到的结果
如果想用一个新字符串代替原有的字符串"c program.",如从键盘输入“hello”分别赋给c数组中前面5个元素,如果不加‘\0’的话代码和结果如下:

int main()
{
	char c[]="c program.";
	for(int i=0;i<5;i++)
	{
		c[i]=getchar();
	}
	printf("%s\n",c);
	system("pause");
	return 0;
}

结果:
在这里插入图片描述
可见新字符串和老字符串连成一片,无法分开,如果在输入“hello”的后面加上一个‘\0’,输出的结果如下:

int main()
{
	char c[]="c program.";
	for(int i=0;i<5;i++)
	{
		c[i]=getchar();
	}
	c[5]='\0';  //用‘\0’代替c数组的第六个字
	printf("%s\n",c);
	system("pause");
	return 0;
}

结果:
在这里插入图片描述

字符数组的输入输出

  1. 逐个输入输出。用“%c”输出或输入一个字符;
  2. 将整个字符数组一次输入输出,用“%s”格式符,意思是对字符串(string)的输入输出;

用scanf函数输入

int main()
{
	char c[6];
	scanf("%s",c); //输入

	printf("%s\n",c); //输出
	system("pause");
	return 0;
}

在这里插入图片描述

如果想输入多个字符,需要定义多个字符;

int main()
{
	char c[5],c2[5],c3[5];
	scanf("%s%s%s",c,c2,c3); //输入的时候不用加地址符号,
					//因为数组名就代表该数祖第一个元素的地址
	printf("%s %s %s\n",c,c2,c3);
	system("pause");
	return 0;
}

在这里插入图片描述
如果只定义一个字符串,按照同样的方式输入则只会输出"How"后面对字符全部为“\0”;因为系统自动把空格字符作为输入的字符串之间的分隔符;

使用字符串处理函数

puts函数——输出字符串的函数

puts(c); //可以直接输出字符串,同时也可以包含转义字符'\n'

用puts函数只能输出一个

gets函数——输入

gets(c);  //只能输入一个字符串

strcat函数——字符串连接符

一般形式为strcat(字符数组1,字符数组2);
作用是把字符串2连接到字符串1的后面并把结果放在字符数组1中;

#include <string.h>  //strcat函数需要的头文件
char str1[15]={"I am "};
char str2[]={"happy"};
printf("%s",strcat(str1,str2));

//输出结果为
I am happy

注意:

  1. 要保证str1必须足够大,不然会因为字符不够而出错;
  2. 连个字符最后都有‘\0’,连接的时候取消‘str1后面的\0’,只在新串后面保留‘\0’;

strcpy和strncpy函数——字符串复制函数

一般形式为
strcpy(字符数组1,字符串2)

  1. 字符数组1必须足够大;
  2. 字符数组1必须写成数组名的形式(str1),字符串2,可以是字符数组名,也可以是一个字符串常量,如:
 strcpy(str1,"china");
  1. 可以用strncpy函数将字符2中前面n个字符复制到str1中去,如:
 strncpy(str1,str2,2);

作用是将str2中最前面的两个字符,取代str1中原有的最前面两个字符,单复制的字符个数不能多于str1中原有的字符。

strcmp函数——字符串比较函数

一般形式为:
strcmp(字符串1,字符串2)
字符串的比较规则是:将两字符串自左向右逐个字符想比较,(按ASCII码值大小比较),知道出现不同的字符或遇到’\0’为止
比较的结果由函数值带回:

  1. 如果str1和str2相同,则函数返回0;
  2. 如果str1>str2,则返回一个正数;
  3. 如果str1<str2,则返回一个负数;

大小的判断是根据第一个不同字符,在ASCII码中的值比较得到

strlen函数——测字符串长度的函数

一般形式为:

strlen(字符数组)
	char str[10]="China";
	printf("%d\n",strlen(str));

输出的结果:
5

strlwr函数——转换为小写的函数

一般形式为:

strlwr(字符串)

strupr函数——转换为大写的函数

一般形式为:

strupr(字符串)

注意

使用这些函数是要在程序文件开头使用

#include <string.h>

把string.h文件包含到本文件中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C语言:字符数组的结束标志,输入输出,使用字符串处理函数等 的相关文章

  • 软件工程学习笔记选择题总结

    第一章 初认软件工程 1 下面的 xff08 C xff09 说法是正确的 A 由于软件是产品 xff0c 因此可以应用其他工程制品所用的技术进行生产 B 购买大多数计算机系统所需的硬件比软件更昂贵 C 大多数软件系统是不容易修改的 xff
  • postman简介与安装步骤

    postman简介与安装步骤 1 postman简介 xff1a 2 postman安装步骤2 1 下载postman2 2 安装postman 3 案例3 1 案例一3 2 案例二案例三 1 postman简介 xff1a Postman
  • 1.4常用Linux命令-进程控制类命令

    程序是一个包含可执行代码的文件 xff0c 它放在磁盘等介质上 当程序被操作系统调用到内存并分配给它一定的资源后 xff0c 此时可称为进程 程序是静态概念 xff0c 进程是动态概念 Linux的进程状态如下图 ps功能描述ps命令是用来
  • 到底是选择嵌入式行业还是互联网行业

    不管是在狄泰圈子还是知乎上面 xff0c 关于到底选择嵌入式行业还是互联网行业这类问题 xff0c 是经常拿来讨论的 差不多像女孩子的月假一样 xff0c 每月必有 今天我就发表一下自己的看法 xff0c 希望对有同样问题的小伙伴有所帮助
  • 用CSS怎样实现鼠标移上去背景颜色变色 onmouseover、onmouseout

    lt DOCTYPE html gt lt html lang 61 34 en 34 gt lt head gt lt meta http equiv 61 34 Content Type 34 content 61 34 text ht
  • 软件质量模型--8大特性(学习笔记)

    目录 一 软件质量模型 二 8个特性及其子特性 一 软件质量模型 软件质量模型将系统 软件产品属性划分为8个特性 xff1a 功能性 性能效率 兼容性 易用性 可靠性 信息安全性 维护性和可移植性 与以往的软件质量六大属性 xff0c 区分
  • 【 Caffe C++】ubuntu下创建hdf5数据源解决多标签问题

    如何在ubuntu下为caffe创建HDF5数据源 xff1f hdf5数据源示例 layer span class token punctuation span name span class token operator span sp
  • MarkDownPad2 正版破解与汉化

    用MarkdownPad2写东西看起来比较高大上 就是专业版的竟然要15美刀 所以今天分享个能用的注册码 让大家都能用免费的专业版 首先去官网下载官方版本的Markdown 因为是外国网站所以可能有点慢 我下载时就是这样 所以我传了个官方的
  • VNC连接不上?too many authentication failures

    VNC连接不上 xff1f too many authentication failures 文章目录 VNC连接不上 xff1f too many authentication failures一 VNC连接不上阿里云服务器 一 VNC连
  • 临时抱佛脚真的有用吗?

    对于面试 应该有相应的准备 xff0c 对面试公司的背景要有简单的了解 xff0c 对企业文化要有简单的认识 那么最关键的就属于问答环节 你问我答 对于这方面 xff0c 有人喜欢临时抱佛脚 但后来 xff0c 我深刻的认识到 xff0c
  • C语言| char[ ]的输出 和结束符 ‘\0‘

    输出char arr 逐个字符输入输出 c 整个字符串一次输入输出 s printf 34 61 61 61 61 61 61 start 61 61 61 61 61 61 n n 34 char arr 61 39 1 39 39 2
  • python中的isdigit()函数

    s为字符串 s isalnum 所有字符都是数字或者字母 s isalpha 所有字符都是字母 s isdigit 所有字符都是数字 s islower 所有字符都是小写 s isupper 所有字符都是大写 s istitle 所有单词都
  • 【WiFi模块ASP-ESP8266】理论讲解与串口助手验证(超详解)

    大家好 xff0c 我是小政 xff0c 一名自动化专业的在校学生 最近在学习利用opencv进行环境监测 xff0c 需要将获取到的数据通过通信协议传输给stm32 我选择使用wifi模块进行无线通信 xff0c 接下来我会将我从入门到掌
  • 【平衡小车制作】(二)电机驱动(超详解)

    大家好 xff0c 我是小政 本篇文章我将针对平衡小车中的电机控制进行详细的讲解 xff0c 驱动一个电机最重要的就是给它一个PWM信号 xff0c PWM的概念 如何驱动电机及通过改变PWM占空比进行电机调速我会在本篇文章中进行详解 让每
  • 【平衡小车制作】(五)位置式PID、直立环与速度环概念(超详解)

    大家好 xff0c 我是小政 本篇文章我将针对位置式PID算法 直立环 速度环等概念进行详细的讲解 xff0c 让每位小伙伴能够对这三个概念有更加清晰的理解 一 PID控制算法 PID控制 xff0c 即为对偏差进行比例 积分和微分控制 由
  • 【平衡小车制作】(七)串级PID调参及平衡成果展示(超详解)

    大家好 xff0c 我是小政 本篇文章我将针对PID调参进行详细的讲解 xff0c 让每位小伙伴能够对比例 积分 微分三个参数如何调节有更加清晰的理解 一 调参步骤 确立机械中值直立环 xff08 内环 xff09 Kp极性 Kp大小 Kd
  • 第七章:总线

    7 1总线概述 总线概述 总线是一组能为多个部件分时共享的公共信息传送线路 共享是指总线上可以挂接多个部件 xff0c 各个部件之间相互交换的信息都可以通过这组公共线路传送 xff1b 分时是指同一时刻总线上只能传送一个部件发送的信息 总线
  • Jetson 系统监视程序Jtop及Jetson基本信息查询

    开启后的界面如下 xff1a 安装Jetson的监视程序 xff1a 了解安装的Jetpack版本是多少 xff1f 了解 GPU 的使用率 xff1f 了解Jetson机器工作在什么模式下 xff1f 了解CPU用了几个 xff1f 散热
  • MVC设计模式

    MVC模式 xff08 Model View Controller xff09 是软件工程中的一种软件架构模式 xff0c 把软件系统分为三个基本部分 xff1a 模型 xff08 Model xff09 视图 xff08 View xff
  • Docker常用基础命令

    目录 1 docker version 查看版本信息 2 docker info 查看docker的一些信息 3 docker search 镜像搜索 4 docker pull 拉取镜像到本地 5 docker push 推送本地的镜像到

随机推荐

  • 硬件基础之变频器&逆变器

    变频器 amp 逆变器工作原理 基本概念直流产生方波思路正弦波产生原理正弦波产生之制作脉冲正弦波产生之滤波 amp 平均 基本概念 逆变器 xff1a 直流电 xff08 DC xff09 转变为交流电 xff08 AC xff09 变频器
  • 硬件基础之STM32最小系统

    STM32 复位电路时钟电路SWD下载电路BOOT电路RTC时钟电源电路 复位电路 STM32为低电平复位 xff0c 上电瞬间电流可视为交流 xff0c 电容导通 xff08 充电过程 xff0c NRST为低电平 xff0c 两个机械周
  • 数据结构常用的结构体定义

    一 顺序表结构体定义 xff1a typedef struct int data maxsize int length Sqlist 二 单链表结构体定义 xff1a typedef struct LNode int data struct
  • Linux基础入门(常用指令总结)

    相信大家对Linux都不陌生 xff0c 本篇文章就详细介绍一些常用的Linux命令 目录 前言 一 Linux是什么 xff1f 二 常用命令 1 cd 切换文件夹 2 ls 查看目录内容 3 mkdir 创建文件夹 4 touch 创建
  • 第7章:OFDM 信道估计与均衡(2)

    第7章 xff08 2 xff09 内容如下 xff1a 一 瑞利衰落信道介绍二 OFDM经过多径衰落信道的误码率分析三 总结 本文对应的完整可运行代码下载地址 xff1a 123kevin456 OFDM 一 瑞利衰落信道介绍 第 xff
  • 阿里云ECS服务器ubuntu18.04图形界面安装配置

    先说一下我用的ECS配置 服务器配置 xff1a 2 vCPU 4 GiB 系统镜像 xff1a ubuntu18 04 xff08 64位 xff09 本文的配置方法在 ubuntu 16 04 上一样适用 1 安装图形化界面 网上一大堆
  • java多线程-进程与线程基础-1

    基本概念 进程 是并发执行的程序在执行过程中分配和管理资源的基本单位 xff0c 是一个动态概念 xff0c 竟争计算机系统资源的基本单位 每一个进程都有一个自己的地址空 间 xff0c 即进程空间或 xff08 虚空间 xff09 进程空
  • 自由度的理解

    研究六轴机械臂的运动学前 xff0c 需要知道机械臂的自由度的定义 xff1a 物体上的任意一个参考点相对基座坐标系O可进行独立自由运动的数量 自由度的计算十分简洁 例如一个物体如正方体 xff0c 取其中心点作为参照点 xff0c 若该参
  • 匿名管道(pipe)和命名管道(mkfifo)

    匿名管道 xff08 pipe xff09 和命名管道 xff08 mkfifo xff09 进程间通信必须通过内核提供的通道 1 匿名管道 匿名管道通过打开的文件描述符来标识的 用于具有亲缘关系间进程之间的通信 int pipe xff0
  • 《Hadoop基础教程》读后感

    Hadoop一直是我想学习的技术 xff0c 正巧最近项目组要做电子商城 xff0c 我就开始研究Hadoop xff0c 虽然最后鉴定Hadoop不适用我们的项目 xff0c 但是我会继续研究下去 xff0c 技多不压身 Hadoop基础
  • WSL2安装CentOS7和Xfce4桌面

    由于工作和学习需要 xff0c 需要在WSL中安装和配置CentOS7系统 1 安装和升级WSL 安装和升级WSL方法可看微软官方教程 本人是将电脑中的WSL升级到了WSL2 2 下载安装CentOS镜像 首先需要下载CentOS7镜像 x
  • 安装MySQL5.7没设置密码解决方法

    我在WSL的CentOS7系统中安装MySQL5 7后发现全程都没设置密码 为了加强安全性 xff0c MySQL5 7为root用户随机生成了一个密码 xff0c 在error log中 xff0c 关于error log的位置 xff0
  • WSL的CentOS7报错Failed to get D-Bus connection: Operation not permitted解决办法

    WSL的CentOS7使用systemctl和service命令时报错Failed to get D Bus connection Operation not permitted 解决办法是更换systemctl文件 首先备份systemc
  • Go的常用设计模式

    好记性不如烂笔头 xff0c 学习编程的最好方式就是自己把代码动手敲一遍 1 策略模式 xff08 strategy xff09 在实际应用中 xff0c 我们对不同的场景要采取不同的应对措施 xff0c 也就是不同的策略 定义一个接口 x
  • Go语言使用golang-jwt/jwt/v4进行JWT鉴权

    文章目录 1 什么是JWT2 JWT的数据结构2 1 Header2 2 Payload2 3 Signature2 4 Base64URL 3使用JWT安装生成Token 参考 xff1a 最近写的项目中用到了JWT鉴权 xff0c 因此
  • 安装zsh并配置oh my zsh,让你的Linux终端也有爆爽体验

    安装zsh并配置oh my zsh 让你的Linux终端也有爆爽体验 xff01 Oh My Zsh 是基于 zsh 命令行的一个扩展工具集 xff0c 提供了丰富的扩展功能 下载安装zsh设置默认shell安装Oh My Zsh安装插件启
  • WSL2 Ubuntu20.04安装xfce4桌面和中文输入法

    目录 WSL2安装xfce4配置 zshrc安装VcXsrv启动桌面安装中文输入法 WSL2 首先需要开启wsl并且版本升级为wsl2 xff0c 然后microsoft store中搜索ubuntu xff0c 安装ubuntu20 04
  • Oracle11g下载地址

    网上链接大多挂了 xff0c 下面这个链接实测可以下载 Oracle11g下载地址
  • 关于元学习收集资料杂乱整理2021.9.11

    元学习论文 xff1a https github com rootlu MetaLearning Papers 应用于 NLP 领域的 Meta few shot 学习方法的最新论文列表 https github com ha lins M
  • C语言:字符数组的结束标志,输入输出,使用字符串处理函数等

    文章目录 字符串和字符串结束标志字符数组的输入输出用scanf函数输入 使用字符串处理函数puts函数 输出字符串的函数gets函数 输入strcat函数 字符串连接符strcpy和strncpy函数 字符串复制函数strcmp函数 字符串