前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C语言教程学习36-40节 字符串函数+结构

C语言教程学习36-40节 字符串函数+结构

原创
作者头像
笃信好学
发布2022-10-03 16:55:17
3190
发布2022-10-03 16:55:17
举报
文章被收录于专栏:笃信好学笃信好学

36.const关键词

const 变量 禁止修改
const 变量 禁止修改

37.字符串处理函数

代码语言:javascript
复制
#include <string.h>
strlen函数
strlen函数
strlen 与sizeof
strlen 与sizeof

C 库函数 - strcat()

声明

下面是 strcat() 函数的声明。

代码语言:javascript
复制
char *strcat(char *dest, const char *src)

参数

  • dest -- 指向目标数组,该数组包含了一个 C 字符串,且足够容纳追加后的字符串。
  • src -- 指向要追加的字符串,该字符串不会覆盖目标字符串。

返回值

该函数返回一个指向最终的目标字符串 dest 的指针。

strcat()例子
strcat()例子

C 库函数 - strcpy()

C 库函数 char *strcpy(char *dest, const char *src) 把 src 所指向的字符串复制到 dest。

需要注意的是如果目标数组 dest 不够大,而源字符串的长度又太长,可能会造成缓冲溢出的情况。

strcpy()实例
strcpy()实例

C 库函数 - strcmp()

C 库函数 int strcmp(const char *str1, const char *str2) 把 str1 所指向的字符串和 str2 所指向的字符串进行比较。

该函数返回值如下:

  • 如果返回值小于 0,则表示 str1 小于 str2。
  • 如果返回值大于 0,则表示 str1 大于 str2。
  • 如果返回值等于 0,则表示 str1 等于 str2。
strcmp()实例
strcmp()实例

38.实现字符串处理函数

本节目标
本节目标

39.初识结构化数据

数组声明
数组声明
访问结构
访问结构

40.结构

结构初始化
结构初始化
结构数组
结构数组
结构嵌套
结构嵌套
指向结构的指针, 用->调用
指向结构的指针, 用->调用

6. 结构在函数中传递

对比下面两段代码

代码语言:javascript
复制
struct person{
  char name[20];
  int gender;
  double height;
  double weight;
};
void change(struct person per)
{
  strcpy(per.name, "david");
  per.gender = 1;
  per.height = 175.00;
  per.weight = 65.00;
}
int main()
{
  struct person timmy = {"timmy", 1, 170.00, 60.00};
  change(timmy);
  printf("%s\n", timmy.name);
  printf("%d\n", timmy.gender);
  printf("%.2f\n", timmy.height);
  printf("%.2f\n", timmy.weight);
  return 0;
}
代码语言:javascript
复制
struct person{
  char name[20];
  int gender;
  double height;
  double weight;
};
void change(struct person *per)
{
  strcpy(per->name, "david");
  per->gender = 1;
  per->height = 175.00;
  per->weight = 65.00;
}
int main()
{
  struct person timmy = {"timmy", 1, 170.00, 60.00};
  change(&timmy);
  printf("%s\n", timmy.name);
  printf("%d\n", timmy.gender);
  printf("%.2f\n", timmy.height);
  printf("%.2f\n", timmy.weight);
}

第一种 我们将结构当作参数传入函数。在函数内部修改传入的参数。很显然,由于实参 timmy 与实参 per 是相互独立的。修改函数 change 内的 per 无法改动实参 timmy 。

但是,如果将 change 函数的参数改为指向结构的指针(第二种方法),情况就大不相同了。在函数 change 内部可以通过指针,找到结构变量 timmy 。并且,对其进行修改。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 36.const关键词
  • 37.字符串处理函数
    • C 库函数 - strcat()
      • 声明
        • 参数
          • 返回值
            • C 库函数 - strcpy()
              • C 库函数 - strcmp()
              • 38.实现字符串处理函数
              • 39.初识结构化数据
              • 40.结构
                • 6. 结构在函数中传递
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档