C语言——字符串、打印字符串的三种方式

article/2025/4/24 1:31:49

文章目录

  • 前言
  • 一、字符串
    • 1.字符串常量
    • 2.注意 scanf() 读取字符串
      • 例如,scanf() 输入中间有空格的字符串后观察打印情况
    • 3.sizeof()函数计算字符串尺寸,strlen()函数计算字符串长度
      • 例子:
    • 4.字符数组定义和初始化
      • (1)传统的字符集合赋值(不推荐)
      • (2)字符串整体赋值
      • (3)字符指针
  • 二、打印输出字符串的三种方式
    • 1.直接是字符串常量
    • 2.字符数组名
    • 3.字符指针变量名

前言

字符串(character string)是一个或多个字符的序列,空字符(null character)\0 标记字符串的结束

字符串以数组(array)存储,也就是以空字符(\0)结尾的 char 类型数组

用 %s 转换说明来处理字符串的输入和输出

输入和输出必须给出字符串的首地址,可以直接是字符串常量字符数组名,或者字符指针变量名

scanf() 输入数据时,要注意函数在读到空格制表符换行符就会停止

一、字符串

C语言中,以数组来表示字符串

1.字符串常量

​ 用一对双引号包含的一个或多个字符的序列,在内存中存放时,以’\0’(空字符)标记字符串的结束(\0是数值转义字符,对应的ASCII码为数值0)

字符串不论什么情况,结尾都会自动加一个’\0’

字符串一定以空字符结束,这意味着数组的容量必须至少比待存储字符串中的字符多1,例如 char name[5]; 只能存储4个字符,剩下一个字节留给空字符

2.注意 scanf() 读取字符串

我们用 scanf() 输入时,要注意函数在读到空格制表符换行符就会停止,如“ab c”,只会读取"ab"

例如,scanf() 输入中间有空格的字符串后观察打印情况

源代码:

#include <stdio.h>
int main()
{char str[40] = { 0 };printf("请输入:");scanf("%s", str);//不需要&,数组名就是首元素地址printf("输出为:");printf("%s\n", str);return 0;
}

运行结果:

scanf输入字符串

再来观察一下数组内的数据:

观察字符串

​ 可以看到,用户以 scanf() 函数输入字符串"Hello world!"到字符数组str,但字符数组并没有接收字符串中间空格之后的数据,说明 scanf() 在碰到空格就停止读取了

3.sizeof()函数计算字符串尺寸,strlen()函数计算字符串长度

strlen() 特点:仅以’\0’为结束判断,且不将’\0’算入内

sizeof 和 strlen 运算符的返回类型可以用 %zd 转换说明

例子:

源代码:

#include <stdio.h>
#include <string.h>int main()
{//sizeof():计算字符串尺寸printf(" %zd\n", sizeof("abc"));     //4printf(" %zd\n", sizeof(""));        //1printf(" %zd\n", sizeof("abc\0de")); //7printf(" %zd\n\n", sizeof("abc de"));  //7//strlen():计算字符串长度printf(" %zd\n", strlen("abc"));     //3printf(" %zd\n", strlen(""));        //0printf(" %zd\n", strlen("abc\0de")); //3;计算字符串长度遇到第一个'\0'截止printf(" %zd\n", strlen("abc de"));  //6return 0;
}

运行结果:

字符串

4.字符数组定义和初始化

(1)传统的字符集合赋值(不推荐)

char str1[5]={'a','b','c','d','e'};        //全部赋值
char str2[5]={'a','b','c'};            //部分元素赋值
char str3[]={'a','b','c','d','e'};    //省略数组长度赋值

那么,上面三个字符数组中存放的是字符串吗?

char str1[5]={'a','b','c','d','e'};    //不是字符串
char str2[5]={'a','b','c'};        //未赋值的元素为'\0',因此是字符串
char str3[]={'a','b','c','d','e'};    
//省略数组长度赋值,长度根据字符的个数确定,不会自动补充'\0',因此不是字符串

数组内存中没有’\0’就不是字符串

注意省略数组长度赋值的情况,长度根据字符的个数确定,不会自动补充’\0’

总结:用字符集合的方式赋值时,养成习惯在末尾补充’\0’否则不是字符串

(2)字符串整体赋值

char str1[5]="abcd";//系统会自动在后面加'\0',即 ch[4]='\0'
char str2[3]="abcde";//错误,超出数组的长度
char str3[5]="abcde";//错误,超出数组长度char str4[]="abc";
//推荐,系统会自动在后面加'\0',即 a[3]='\0',所以该数组的元素个数是 4 个

(3)字符指针

char* str = "Hello world!";printf("%s\n", str);

二、打印输出字符串的三种方式

​ 输入和输出必须给出字符串的首地址,可以直接是字符串常量字符数组名,或者字符指针变量名

1.直接是字符串常量

printf("%s\n", "Hello world");

2.字符数组名

char str[]="Hello world";//字符数组名str即为字符串首地址
printf("%s\n",str);//注意打印字符串要用%s

3.字符指针变量名

char * ps1="Hello world";
printf("%s\n",ps1);
//字符串常量"Hello world"的首地址赋给字符指针变量 ps1,使 ps1 指向字符串首元素地址
char str[]="Hello world" ;
char *ps2=NULL;ps2 = str;//数组名 str 即字符串常量首元素地址,赋给字符指针变量 ps2
printf("%s\n",ps2);

http://chatgpt.dhexx.cn/article/m2qSFIL0.shtml

相关文章

C语言 格式输入输出与字符输入输出

提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、 格式输入输出 1、格式输出——printf函数 &#xff08;1&#xff09;格式 printf("格式控制"&#xff0c;输出列表项)&#xff1b; 格式控制分为格式声明&#xff08;%和格式字符&am…

jmeter+ant+jenkins-接口自动化持续集成(与之类似的postman+newman+Jenkins接口自动化持续集成)

jmeterantjenkins-接口自动化持续集成 jmeterantjenkins-接口自动化持续集成基本安装配置Ant配置Jmeter配置Jenkins&#xff0c;构建持续集成 jmeterantjenkins-接口自动化持续集成 Jmeter可以做接口测试&#xff0c;也能做压力测试&#xff0c;而且是开源软件 Ant是基于Java的…

MAC jmeter+ant 实现接口测试并将接口测试报告以邮件的形式发出-超详细

最近项目组涉及到接口测试&#xff0c;然后自己想着如何输出接口测试的报告&#xff0c;经过自己的了解&#xff0c;发现测试行业中每个公司每个测试人员输出的方式都不一样的。常规的有以下几种 使用表格的形式&#xff0c;手动去写&#xff0c;以总结的形式&#xff0c;给到…

jmeter+ant+jenkins接口自动化测试框架搭建

一个完整的接口测试框架需要支持接口的自动执行&#xff0c;自动生成测试报告&#xff0c;以及持续集成。Jmeter可以做接口测试&#xff1b;Ant是基于Java的构建工具&#xff0c;完成脚本执行并收集结果生成报告&#xff0c;可以跨平台&#xff1b;Jenkins是持续集成工具。将这…

windows下,jmeter+jenkins+ant接口自动化测试环境搭建

&#xff08;一&#xff09;jdk安装与配置 利用jmeter进行接口自动化&#xff0c;需要用到jdk&#xff0c;因此需要下载并安装jdk&#xff0c;下载jdk并配置好环境变量&#xff08;可参考网上教程&#xff09; &#xff08;二&#xff09;ant安装与配置 1.下载ant&#xff0…

Jmeter+Jenkins+Ant接口自动化测试平台搭建(Mac)输出测试报告(二)

1、首先将apache-jmeter-3.2extras下面的ant-jmeter-1.1.1的jar包复制到ant的lib目录下 复制到你安装ant目录下的lib文件里(这里就不贴图里) /usr/local/Cellar/ant/1.10.6/libexec/lib 提示&#xff1a;如果大家下载完ant后找不到路径&#xff0c;可以在终端输入命令&#x…

用JMeter+ANT进行接口自动化测试,并生成HTML测试报告

前言 小伙伴们&#xff0c;用python做接口自动化是不是写代码比较繁琐&#xff0c;而且没有python代码基础的小伙伴根本无从下手对吧&#xff01;今天我们来学习一下如何使用JMeter工具实现接口自动化测试。 安装 1、安装JDK&#xff0c;配置java环境变量&#xff08;安装过程…

jmeter——jmeter+ant生成优化的HTML接口自动化测试报告

jmeterant生成优化的HTML测试报告 一、最终实现效果展示二、实现方式1、环境搭建2、实现原理3、报告生成方式 三、实现步骤1、jar包转移&#xff1a;实现ant调用jmeter脚本2、jmeter插件包处理3、build文件的创建和修改4、报告展示信息调整5、html报告样式优化 四、遗留问题、 …

不会Python,用JMeter+ANT进行接口自动化测试,同样生成HTML测试报告,拿下20k轻轻松松

用python做接口自动化是不是写代码比较繁琐&#xff0c;而且没有python代码基础的小伙伴根本无从下手对吧&#xff01;今天我们来学习一下如何使用JMeter工具实现接口自动化测试。 一、安装 1、安装JDK&#xff0c;配置java环境变量&#xff08;安装过程略&#xff09; 2、安…

jmeter+csv+ant接口自动化测试--利用apache-ant执行测试用例并生成HTML格式测试报告(二)

在上一篇博文中介绍了如何使用csv文件来批量管理接口&#xff0c;本篇博文介绍如何利用apache-ant执行测试用例并生成HTML格式测试报告。 ①下载安装apache-ant-1.10.0&#xff0c;配置环境变量 如下方式检验安装是否成功&#xff0c;若展示如下即安装成功。 ②安装好ant后&am…

测试萌新必看!用JMeter+ANT进行接口自动化测试,并生成HTML测试报告

【文章末尾给大家留下了大量的福利】 小伙伴们&#xff0c;用python做接口自动化是不是写代码比较繁琐&#xff0c;而且没有python代码基础的小伙伴根本无从下手对吧&#xff01;今天我们来学习一下如何使用JMeter工具实现接口自动化测试。 01 安装 1、安装JDK&#xff0c;…

小白必看!用JMeter+ANT进行接口自动化测试,并生成HTML测试报告

小伙伴们&#xff0c;用python做接口自动化是不是写代码比较繁琐&#xff0c;而且没有python代码基础的小伙伴根本无从下手对吧&#xff01;今天我们来学习一下如何使用JMeter工具实现接口自动化测试。 01 安装 1、安装JDK&#xff0c;配置java环境变量&#xff08;安装过程略…

jmeter+ANT接口自动化环境的搭建以及测试报告的优化

1.安装JDK 下载地址&#xff1a;Java Downloads | Oracle 配置环境变量&#xff1a; JAVA_HOME C:\Program Files\Java\jdk1.8.0_171 path ;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin CALSS_PATH .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.ja…

Jmeter+jenkins+Ant接口持续集成测试

Ant的介绍 apache Ant,是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具&#xff0c;大多用于Java环境中的软件开发。由Apache软件基金会所提供。 Ant它有以下的优点。跨平台性。Ant是纯Java语言编写的&#xff0c;所以具有很好的跨平台性。操作简单。Ant是…

Windows下搭建ant+jenkins+jmeter自动化接口测试框架(详细篇)

引言 为什么要持续集成? 1、减少风险 2、减少假定 3、减少重复过程 4、增强项目的可见性 5、持续集成可以带来两点积极效果&#xff1a; (1)有效决策&#xff1a;持续集成系统为项目构建状态和品质指标提供了及时的信息&#xff0c;有些持续集成系统可以报告功能完成度…

搭建jmeter+Jenkins+ant接口自动化测试

这是本人第一次在Jenkins下搭建接口自动化测试&#xff0c;也是一步一步摸索成形&#xff0c;继而满足基本使用要求。 一、前期准备 1.下载jdk&#xff0c;配置环境变量 export JAVA_HOME/brd_devops/jdk1.8.0_161 export JRE_HOME$JAVA_HOME/jre export CLASS_PATH$JAVA_HOME/…

不写一行代码,搭建Jenkins+Jmeter+Ant接口自动化框架

1、安装jmeter&#xff0c;并确认你的jmeter脚本可以跑通&#xff0c;如图所示&#xff1a; 2、安装ant&#xff0c;从http://ant.apache.org/bindownload.cgi下载并确认ant安装成功 3、将Jmeter下面extras目录里面的ant-jmeter-1.1.1.jar文件复制到ant的lib目录下面&#xff0…

jmeter+ant接口测试之修改build.xml,优化测试报告,展现更详细的信息

目录 初始报告 优化 1、下载优化模板 2、修改build.xml 3、修改jmeter.properties 4、配置user.properties 5、保留最新构建报告 6、报告文件名称带当前日期 初始报告 优化 1、下载优化模板 原来的下载地址用不了了&#xff0c;大家可以另外找下 jmeter-results-shan…

jmeter-11-Ant接口自动化一键运行

前言 重要的事情说三遍&#xff1a;仓库放在最后&#xff01;&#xff01;&#xff01;仓库放在最后&#xff01;&#xff01;&#xff01;仓库放在最后&#xff01;&#xff01;&#xff01; 整体流程图 PPL Jmeter 简介&#xff1a; 整合JmeterAnt 只需要通过简式配置或直…