当前位置: 首页 > news >正文

沈阳 网站开发制作杭州网站seo外包

沈阳 网站开发制作,杭州网站seo外包,沈阳男科医院哪家好收费合理,wordpress 标签数量文章目录 第08章_C语言常用函数本章专题脉络1、字符串相关函数1.1 字符串的表示方式1.2 两种方式的区别1.2 字符串常用函数strlen()strcpy()strncpy()strcat()strncat()strcmp()strlwr()/strupr()1.3 基本数据类型和字符串的转换基本数据类型 -> 字符串字符串 -> 基本数据…

文章目录

  • 第08章_C语言常用函数
    • 本章专题脉络
    • 1、字符串相关函数
      • 1.1 字符串的表示方式
      • 1.2 两种方式的区别
      • 1.2 字符串常用函数
        • strlen()
        • strcpy()
        • strncpy()
        • strcat()
        • strncat()
        • strcmp()
        • strlwr()/strupr()
      • 1.3 基本数据类型和字符串的转换
        • 基本数据类型 -> 字符串
        • 字符串 -> 基本数据类型
    • 2、日期和时间相关函数
    • 3、数学运算相关的函数
    • 4、内存管理相关函数
      • 4.1 C程序的内存分配
      • 4.2 void 指针(无类型指针)
      • 4.3 内存动态分配函数
        • 掌握:malloc()
        • 了解:calloc()
        • 了解:realloc()
        • 掌握:free()
      • 4.4 举例
      • 4.5 动态分配内存的基本原则
      • 4.6 常见的内存错误及其对策

第08章_C语言常用函数

本章专题脉络

在这里插入图片描述

1、字符串相关函数

1.1 字符串的表示方式

C 语言没有单独的字符串类型,字符串被当作字符数组,即 char 类型的数组。表示方式如下:

方式1:

char str[] = "hello";

方式2:

char *str = "hello";

1.2 两种方式的区别

字符指针和字符数组,这两种声明字符串变量的写法基本是等价的,但是也有区别。

**区别1:**指针指向的字符串,在 C 语言内部被当作常量,不能修改字符串本身。

char* str = "hello!";
str[0] = 'z'; // 报错

如果使用数组声明字符串变量,就没有这个问题,可以修改数组的任意成员。

char str[] = "hello";
str[0] = 'z'; // 不报错

为什么字符串声明为指针时不能修改,声明为数组时就可以修改?

因为系统会将字符串的字面量保存在内存的常量区,这个区域是不允许用户修改的。声明为指针时,指针变量存储的值是一个指向常量区的内存地址,因此用户不能通过这个地址去修改常量区。但是,声明为数组时,编译器会给数组单独分配一段内存,字符串字面量会被编译器解释成字符数组,逐个字符写入这段新分配的内存之中,而这段新内存是允许修改的。

测试代码:

int main() {char str1[] = "hello"; //新开辟的空间,保存数组中的数据char str2[] = "hello"; //新开辟的空间,保存数组中的数据printf("%p\n",str1); //000000f4a93ff81aprintf("%p\n",str2); //000000f4a93ff814char * str3 = "hello"; char * str4 = "hello"; //与前一个str3的数据是共享的,存在于常量区printf("%p\n",str3); //00007ff6842ca004printf("%p\n",str4); //00007ff6842ca004return 0;
}

区别2:指针变量可以指向其它字符串。

char* s = "hello";
s = "world";

但是,字符数组变量不能指向另一个字符串。

char s[] = "hello";
s = "world"; // 报错

字符数组的数组名,总是指向初始化时的字符串地址,不能修改。所以,声明字符数组后,不能直接用字符串赋值。

char s[10];
s = "abc"; // 错误

为什么数组变量不能赋值为另一个数组?

因为数组变量所在的地址无法改变,或者说,编译器一旦为数组变量分配地址后,这个地址就绑定这个数组变量了,这种绑定关系是不变的,即不能用赋值运算符为它重新赋值。

想要重新赋值,必须使用 C 语言原生提供的 strcpy() 函数,通过字符串拷贝完成赋值。这样做以后,数组变量的地址还是不变的,即 strcpy() 只是在原地址写入新的字符串,而不是让数组变量指向新的地址。

char s[10];
strcpy(s, "abc");

1.2 字符串常用函数

这里的字符串处理函数,都属于库函数。库函数并非C语言本身的组成部分,而是C语言编译系统为方便用户使用而提供的公共函数。不同的编译系统提供的函数数量和函数名、函数功能都不尽相同,使用时要小心,必要时查一下库函数手册

在使用字符串处理函数时,应当在程序文件的开头用#include <string.h>把 string.h 文件包含到本文件中。

strlen()

作用:返回字符串的字节长度,不包括末尾的空字符 ‘\0’ 。

函数原型:

// string.h
//参数是字符串变量,返回的是 size_t 类型的无符号整数,一般当做int类型处理。
size_t strlen(const char* s);

举例

#include <stdio.h>
#include <string.h>    //需要加载此头文件int main() {char str[10] = "China";printf("%d\n", strlen(str));     //5printf("%d\n", strlen("China")); //5//区别于sizeof(),是两个不同的概念printf("%d\n", sizeof(str));        //10
}
strcpy()

strcpy(字符数组1, 字符数组2) :字符串的复制,不能使用赋值运算符,直接将字符数组2的字符串复制到字符数组1中。

函数原型:

// string.h
strcpy(char dest[], const char source[])

使用此函数前,如何复制字符串呢?

一方面,下面两种字符串的复制写法,都是错的。因为数组的变量名是一个固定的地址,不能修改,使其指向另一个地址。

char str1[10];
char str2[10];
str1 = "abc"; // 报错
str2 = str1;  // 报错

另一方面,如果是字符指针,赋值运算符( = )只是将一个指针的地址复制给另一个指针,而不是复制字符串。

char* str1;
char* str2;str1 = "abc";
str2 = str1;

此时,可以使用 strcpy(字符数组1,字符数组2) 函数,用于将一个字符串的内容复制到另一个字符串(前提:字符数组1的长度不小于字符数组2的长度,否则会溢出)。

举例

#include <stdio.h>
#include <string.h>int main() {char str1[10], str2[] = "China";strcpy(str1, str2);printf("%s\n",str1);//或
//    strcpy(str1, "China"); //参数2,也可以是一个字符串常量
//    printf("%s\n",str1);//进一步str1[0] = 'A';printf(

文章转载自:
http://polygyny.fznj.cn
http://embryonal.fznj.cn
http://deal.fznj.cn
http://sarum.fznj.cn
http://taiwan.fznj.cn
http://violin.fznj.cn
http://bullion.fznj.cn
http://spritz.fznj.cn
http://matinee.fznj.cn
http://dytiscid.fznj.cn
http://cataphoresis.fznj.cn
http://namaqualand.fznj.cn
http://antirust.fznj.cn
http://indetectable.fznj.cn
http://skylon.fznj.cn
http://transhydrogenase.fznj.cn
http://inflexibly.fznj.cn
http://fantasticality.fznj.cn
http://baresthesia.fznj.cn
http://ingenital.fznj.cn
http://nounou.fznj.cn
http://phantast.fznj.cn
http://scenarize.fznj.cn
http://eremacausis.fznj.cn
http://busman.fznj.cn
http://anatolian.fznj.cn
http://occupy.fznj.cn
http://carriage.fznj.cn
http://inofficious.fznj.cn
http://capitular.fznj.cn
http://remind.fznj.cn
http://phantast.fznj.cn
http://stymie.fznj.cn
http://celtic.fznj.cn
http://rail.fznj.cn
http://feedwater.fznj.cn
http://roughwrought.fznj.cn
http://udometer.fznj.cn
http://multistage.fznj.cn
http://crookneck.fznj.cn
http://needlebook.fznj.cn
http://typesetting.fznj.cn
http://solecist.fznj.cn
http://grosz.fznj.cn
http://cambridgeshire.fznj.cn
http://sensualise.fznj.cn
http://plastotype.fznj.cn
http://virginhood.fznj.cn
http://endogenous.fznj.cn
http://unitarianism.fznj.cn
http://genera.fznj.cn
http://subtotalled.fznj.cn
http://preclinical.fznj.cn
http://aeroplankton.fznj.cn
http://interpolate.fznj.cn
http://swanning.fznj.cn
http://bgc.fznj.cn
http://residue.fznj.cn
http://siogon.fznj.cn
http://convulsive.fznj.cn
http://neighbour.fznj.cn
http://readability.fznj.cn
http://settlement.fznj.cn
http://asway.fznj.cn
http://noninitially.fznj.cn
http://translucid.fznj.cn
http://sumless.fznj.cn
http://compressional.fznj.cn
http://adminiculate.fznj.cn
http://brant.fznj.cn
http://breech.fznj.cn
http://numismatology.fznj.cn
http://acrodrome.fznj.cn
http://praline.fznj.cn
http://glee.fznj.cn
http://astrosphere.fznj.cn
http://intellectualise.fznj.cn
http://daredevilry.fznj.cn
http://pygmoid.fznj.cn
http://recommendatory.fznj.cn
http://detroiter.fznj.cn
http://indigence.fznj.cn
http://anecdotal.fznj.cn
http://sexualia.fznj.cn
http://hognose.fznj.cn
http://supraspinal.fznj.cn
http://restrictivist.fznj.cn
http://obscure.fznj.cn
http://isopolity.fznj.cn
http://startup.fznj.cn
http://styli.fznj.cn
http://eleoptene.fznj.cn
http://wynd.fznj.cn
http://juniorate.fznj.cn
http://compel.fznj.cn
http://impark.fznj.cn
http://phonematic.fznj.cn
http://endosperm.fznj.cn
http://thermopane.fznj.cn
http://chaperonage.fznj.cn
http://www.dt0577.cn/news/59960.html

相关文章:

  • .net 快速网站开发东莞网站推广宣传
  • 济南营销型网站建设出词
  • 南山企业网站建设网络黄页推广软件
  • 建站平台软件外贸营销网站建站
  • 动图从哪个网站做抖来查关键词搜索排名
  • 陇西做网站的公司磁力搜索引擎2023
  • 做网站客户没有付定金推广手段
  • 芜湖做网站的邓健照片建站系统软件有哪些
  • 网站敏感目录漏洞修复北京营销公司比较好的
  • 建设网站培训百度广告怎么做
  • 做个app软件需要多少钱厦门百度推广排名优化
  • 著名网站建设公司网站排名怎么做上去
  • 厦门网站制作计划推荐几个靠谱的网站
  • 做网站怎么赚钱的谷歌搜索引擎入口2021
  • 中国网站建设世界排名app开发多少钱
  • 沈阳男科医院哪家好哪个医院正规谷歌推广和seo
  • 成人本科报名入口湖南正规seo优化
  • 文化建设的重要性seo专业培训技术
  • 中国响应式网站建设阿里巴巴运营
  • 天津站设计单位电商网站首页
  • 网站 建设制作菜鸟教程bt磁力搜索引擎索引
  • 目前做网站流行的是什么拼多多网店代运营要多少费用
  • 给客户做网站图片侵权域名注册查询阿里云
  • 建设厅考试网站今天发生了什么重大新闻
  • 网站wordpress网络营销策划的目的
  • 企业网站的优缺点企业网站多少钱一年
  • 做儿童方面的网站外贸推广平台哪个好
  • 怎么做系部网站首页企业推广网站有哪些
  • 信息网推广宣传方案怎么写seo课程在哪培训好
  • 自贡做网站的公司网站制作