指针和字符串

指针和字符串 

  [前言] 我们所写的应用程序都需要从网络获取数据,或者从网络下载数据,这些操作都需要和网络另一端的服务器进行数据传输,这些数据都是通过文件进行传输的,文件中就是字符串,我们程序员需要保证正确解析从网络获取的数据文件(解析文件中的字符串),保证数据显示无误

 

一.认识字符串

  在程序中,“”引起来的就是一个字符串

  如果在程序中直接通过“xxx”书写一个字符串,这个字符串就会立即被存入内存(代码区)(代码区是“只读区”),在内存中“xxx”中每个字符都会占用一个字节,“xxx”这样的字符串,编译器自动会在字符串的末尾添加一个尾零('\0'),这个尾零作为字符串的结束标识

  “xxx”字符串本身也是一个表达式,这个表达式的值是字符串中首字符的地址

   //同一个字符串,在程序中多次书写,在内存中只会存储一份

  [输入/输出字符串]

    输入/输出字符串需要使用%s格式来表示

    [输入

    char str[10];scanf("%s",str);

      [] %s输入字符串时,scanf语句从[输入缓冲区]读取字符串数据,遇到第一个空格或者'\n'就会停止读取,同时会把 或者'\n'变为'\0'添加到字符串的结尾

      [] 如果想要一次性读取一行字符串,可以使用以下方法:gets(str);

      [] 从终端读取一个字符串一般用一个字符数组来存储,但是不论是使用scanf读取还是使用gets读取数据,都必须保 证字符数组空间足够大

    [输出]

    printf("%s",str);

      [] %s输出字符串时,是从给定地址的第一个字符开始输出的,直到遇到'\0'才会停止输出

 

二.和字符串操作相关的库函数

  [] 使用操作字符串的库函数,需要包含头文件string.h

  <1> strlen,统计字符串中有效字符个数

    '\0'不会被统计  , '\0'是无效字符

    size_t strlen(const char * str);

    [注] strlen函数统计字符串中有效字符个数时,遇到第一个'\0'就停止统计

  <2> strcpy,拷贝一个字符串到另一个内存中(字符串的复制)

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

    [注] dest对应的目的空间,必须支持写入数据,必须足够大

  <3> strcat,将一个字符串连接到另一个字符串后面(字符串的连接)

    char * strcat(char * str1, const char * str2);

    [注] str1所在的内存空间,必须支持写入,空间必须足够大

  <4> strcmp,比较两个字符串的大小(字符串的比较) 

    int  strcmp(const char * str1, const char * str2); 

    返回值 0   , 表示 str1 等于 str2

    返回值 负数 , 表示 str1 小于 str2

    返回值 正数 , 表示 str1 大于 str2

  <5> strstr,从父串中查找子串的位置(字符串的查找)

    char * strstr(const char * fatherString, const char * sonString);

    [注] 如果找到, 返回子串在父串中第一次出现的位置(地址)

    如果没找到, 返回 NULL ( 0 ) 

  <6> strtok , 将一个长字符串分割长多个短字符串(分割字符串)

    char * strtok(char * string, const char * separater);

    [注] 实际使用strtok 去分割字符串时, 调用一次strtok会分割到一个短字符串.并且返回这个短字符串的地址. 想要分割 得到多个短字符串,必须通过多次调用strtok函数实现

  <7>atoi 函数, -- 将 数字字符串 转为数字.[address to int]

    例子: "123" == > 123

       "123abc"  ==> 123 "-123abc" ==> -123

       "abc123"  ==> 0

       "+123abc" == > 123

 

int    atoi(const char *);

转载于:https://www.cnblogs.com/firstsky/p/5892235.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/489904.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华为手机怎么使用读卡器_华为手机使用小窍门

华为手机电池耐用&#xff0c;信号好&#xff0c;系统流畅&#xff0c;外观也一改以往的呆板现在追求时尚&#xff0c;所以深得国人的喜爱&#xff0c;也因为美国的打压激起了国人的爱国意识&#xff0c;华为在国内手机销量高居第一&#xff0c;使用的人很多。现在国产最好的手…

报告 | 数字孪生城市研究报告(2019年)

来源 &#xff1a;数据观数字孪生技术应用最早起源于工业领域&#xff0c;尤其飞机、火车发动机等高端制造领域&#xff0c;对产品、生产线和工艺等进行数字仿真、实时跟踪&#xff0c;研发周期大幅缩减&#xff0c;生产成本大幅降低&#xff0c;形成多设备互联、协同和优化的建…

立方体引起的引力异常计算&画图

地球重力学需要我们计算立方体引起的重力异常&#xff0c;公式见《重力学与固体潮》。 这个程序取的z方向是竖直向下的&#xff0c;也就是说地面向下为正&#xff0c;地面向上为负 %定义一个立方体函数% function [gravity]draw_square(a,b,c,x0,y0,H,ph,z) %长方体模型参数说…

win10开始不显示python_win10从零安装配置pytorch全过程图文详解

1.安装anaconda &#xff08;anaconda内置python在内的许多package&#xff0c;所以不用另外下载python&#xff09; 可以点击下面的清华开源软件镜像站&#xff0c;在官网下载anaconda不如在这下的快 https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 镜像站 我下载的…

大雁展翅,轮回,国甲,国丙,速龙,傲龙,御龙这些魔方有什么区别

大雁&#xff1a;展翅&#xff1a;曾经最顶级的速柠魔方。顺滑&#xff0c;容错大&#xff0c;无小卡。菲神的5.66就是用它破的。 轮回&#xff1a;角块有双重卡脚&#xff0c;稳定性好&#xff0c;不易pop&#xff0c;但容错较小。大雁的其它产品有孤鸿&#xff0c;大…

暗备用的运行状态_瞧:我利用“无偏二极管”发明设计出了【宇宙“暗物质”、“暗能量”探测器】...

《瞧&#xff1a;我利用“无偏二极管”发明设计出了【宇宙“暗物质”、“暗能量”探测器】》楔子&#xff1a;首先&#xff0c;我要在此留下“2020”——“爱你爱你”印迹的一张照片&#xff1a;这不是口罩而是爱&#xff01;中国人以【爱家人、爱自己】这一特殊形式的“爱”战…

【必读】2019年深度学习自然语言处理最新十大发展趋势, 附报告下载

https://blog.floydhub.com/ten-trends-in-deep-learning-nlp/来源&#xff1a;专知2018年是基于深度学习的自然语言处理(NLP)研究发展快速的一年。在此之前&#xff0c;最引人注目的是Word2Vec&#xff0c;它于2013年首次发布。在此期间&#xff0c;深度学习模型在语言建模领域…

spring 事务隔离级别和传播行为_Spring事务的传播行为案例分析

网上关于Spring事务传播性以及隔离型的文章漫天盖地&#xff0c;还有不负责任的直接复制名词意思&#xff0c;文章虽然很多却是看的云里雾里&#xff0c;我们今天将给出案例分别和大家一起学习。1、spring给出经常面试的考点Spring事务的4个特性含义---这个很容易理解2、spring…

[matlab]斜阶梯式长条引起的重力异常计算

画的是《重力学与固体潮》那本书的斜阶梯的重力异常 function [gravity]draw_gravity_dixing(h1,h2,alpha,xigma,x0,z,direction) %h1100;%上表面 %h2200;%下表面 %x00;%移动原点位置&#xff0c;向右为正 %xigma3*10^3;%剩余密度 pi3.1415926535 %alphaalpha*pi;%倾角%采样区…

[Android]使用MVP解决技术债务(翻译)

以下内容为原创&#xff0c;欢迎转载&#xff0c;转载请注明 来自天天博客&#xff1a;http://www.cnblogs.com/tiantianbyconan/p/5892671.html 使用MVP解决技术债务 原文&#xff1a;https://medium.com/picnic-engineering/tackling-technical-debt-with-mvp-67e805ed5103#.…

Science:睡眠剥夺影响大脑思考竟是因为蛋白质罢工了!

来源&#xff1a;生物探索睡眠会影响我们的思维&#xff0c;当我们获得充足的睡眠后&#xff0c;大脑思维会变得清晰&#xff1b;而当我们睡眠不足时&#xff0c;大脑会变得迟钝。那么进入睡眠状态后&#xff0c;大脑又是如何调整以保证睡醒后脑回路清晰的呢&#xff1f;近日&a…

【Matlab】滤波器常用命令

在命令行中输入&#xff1a; designfilt然后就会弹出滤波器的种类&#xff0c;选定后会让你填参数。 参数填好之后点确定&#xff0c;会在命令行窗口生成这个滤波器&#xff0c;复制到编辑器里直接用就好。 %读取音频文件% [x,Fs]audioread(C:\Users\16000\Desktop\testfile.…

element ui input视图没刷新_[Selenium自动化测试实战] 如何在UI自动化测试中加入REST API的操作...

问题当我们描述一个“好的自动化测试用例”时&#xff0c;经常出现标准是&#xff1a;精确。自动化测试用例应该测试一件事&#xff0c;只有一件事。与测试用例无关的应用程序的某个部分中的错误不应导致测试用例失败。独立。自动化测试用例不应该受测试套件中任何其他测试用例…

语句中如何结束本循环进入下一循环_Python3基础语法(八)--控制循环 while...

一、while 简介Python 的循环有 for 和 while 两种&#xff0c;while 为条件控制循环&#xff0c;通过循环控制条件表达式控制循环结束。流程图如下&#xff1a;Python 中 while 语句的格式如下&#xff1a;while <条件表达式>:【语句块】释&#xff1a;当 while 的 <…

关于生命、宇宙和万事万物的42个终极问题

来源&#xff1a;世界科技创新论坛" 我们的宇宙是否稳定&#xff0c;黑洞熵的起源和温度是什么&#xff0c;爱因斯坦的相对论和标准场论总是有效的吗&#xff0c;时空几何中是否存在奇异的性质&#xff0c;化学、应用物理和科技的极限是什么……“在达到完全开悟的道路上&…

【matlab】画图的文字调整大小

hxlabel(x); set(h,Fontsize,14);hylabel(df(x)/dx); set(h,Fontsize,14);htitle(精确解和二阶差分对比); set(h,Fontsize,14);hlegend(精确的一阶偏导,二阶差分得到的偏导); set(h,Fontsize,14);这样就行了

python decimal_【进阶】嫌弃Python慢,试试这几个方法?

(给机器学习算法与Python学习加星标&#xff0c;提升AI技能)选自towardsdatascience&#xff0c;作者&#xff1a;Martin Heinz本文转自机器之心(nearhuman2014)本文将介绍如何提升 Python 程序的效率&#xff0c;让它们运行飞快&#xff01;计时与性能分析在开始优化之前&…

王道8套有变化吗_求求你别再套花艺设计公式了

花艺设计也有公式吗&#xff1f;确实有花艺设计只有公式吗&#xff1f;并不是无论是哪门设计学科&#xff0c;公式这种东西&#xff0c;谈多了是否有种千篇一律的感觉&#xff1f;设计风格相似的花艺师要越来越多&#xff0c;一时间竟然以为都是一个人。就和网红一样&#xff0…

对象构造函数的原型图

对象的定义其实很广泛,万物皆为对象,我们创建对象一般都是用构造函数来创建的,这里我们来说说构造函数创建对象的原型图把. 这个问题有点抽象,举个例子来说,方便一点: 这是我们构造函数,这里我们要结合一张 图来说明就更清楚了,这里我们就用一个实例p1好了,其他两个就不用了. 这…

【服务器】sbatch 提交作业脚本

在已经写好的脚本的#!bin/bash下面加上&#xff1a; #SBATCH --get-user-env #SBATCH --mail-typeend #SBATCH -J simple_module #SBATCH --nodes4 #SBATCH --ntasks-per-node24然后退出即可。 运行时使用 sbatch ./name_of_bash即可 其中 #SBATCH -J simple_module指定了提…