服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C/C++ - 详解C语言结构体中的char数组如何赋值

详解C语言结构体中的char数组如何赋值

2022-10-12 14:26北极的大企鹅 C/C++

这篇文章主要给大家介绍了关于C语言结构体中的char数组如何赋值的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

前景提示

定义一个结构体,结构体中有两个变量,其中一个是char类型的数组,那么,怎么向这个数组中插入数据,打印数据呢?

?
1
2
3
4
5
6
typedef struct SequenceList {
    // 数组的元素
    char element[20];
    // 数组的长度
    int length;
};

定义一个结构体,结构体中有两个变量,其中一个是char类型的数组指针,那么,怎么向这个数组中插入数据,打印数据呢?

?
1
2
3
4
5
// 定义顺序表结构体
typedef struct SequenceList {
    char *elment;
    int length;
};

这里的结构体处理的步骤

  • 结构体初始化
  • 结构体内数据赋值
  • 结构体内输出数据

本着上述的原则,先对第一种类型进行操作

一.char数组类型的处理

1.结构体初始化

?
1
2
3
     SequenceList L;
L.element = (char*)malloc(sizeof(char)*10);
L.length  = 10

2.结构体内数据赋值(简单法)

?
1
2
3
4
5
L.elment[0] = 1;
L.elment[1] = 2;
L.elment[2] = 3;
L.elment[3] = 4;
L.elment[4] = 5;

for循环

?
1
2
3
4
  for (int i = 0; i < 10; i++)
{
    L.elment[i] = i+1;
}

3.结构体内输出数据

?
1
2
3
4
5
6
7
for (int i = 0; i < 10; i++)
  {
      //不会打印空值
      if (L.elment[i]>0) {
          printf("element[%d] = %d\n",i, L.elment[i]);
      }
  }

二.char数组指针类型的处理

1.结构体初始化

?
1
2
3
4
//结构体初始化
MyList L;
L.length = LENGTH;
L.elment = (char*)malloc(L.length * sizeof(char));

2.结构体内数据赋值

?
1
2
3
4
5
//结构体赋值
for (int i = 0; i < LENGTH; i++)
{
    *(L.elment + i) = 'A' + i;
}

3.结构体内输出数据

?
1
2
3
4
5
6
7
//打印结构体中的值
 for (int i = 0; i < LENGTH; i++)
 {
     if (*(L.elment + i) > 0) {
         printf("elment[%d] = %c\n", i, *(L.elment + i));
     }
 }

三.全部代码

1. char数组

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// 010.顺序表_004.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include <iostream>
#define MAXSIZE 10
 
typedef struct SequenceList {
    // 数组的元素
    char element[MAXSIZE];
    // 数组的长度
    int length;
};
 
int main()
{
    // 1.初始化结构体
    SequenceList *L;
    L = (SequenceList*)malloc(sizeof(char)*MAXSIZE);
    L->length = MAXSIZE;
 
    // 2.存入结构体内值
    for (int i = 0; i < MAXSIZE; i++)
    {
        L->element[i] = 'a' + i;
    }
 
    // 3.打印结构体内的值
    for (int i = 0; i < MAXSIZE; i++)
    {
        if (*(L->element + i) > 0) {
            printf("elment[%d] = %c\n", i, *(L->element + i));
        }
    }
}

详解C语言结构体中的char数组如何赋值

2. char数组指针

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// 011.顺序表_005.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include <iostream>
#define MAXSIZE 10
 
typedef struct SequenceList {
    // 数组的元素
    char *element;
    // 数组的长度
    int length;
};
 
int main()
{
    // 1.结构体初始化
    SequenceList L;
    L.length = MAXSIZE;
    L.element = (char*)malloc(L.length * sizeof(MAXSIZE));
 
    // 2.结构体内赋值
    for (int i = 0; i < MAXSIZE; i++)
    {
        *(L.element + i) = 'a' + i;
    }
    
    // 3.打印结构体中的值
    for (int i = 0; i < MAXSIZE; i++)
    {
        if (*(L.element + i) > 0) {
            printf("elment[%d] = %c\n", i, *(L.element + i));
        }
 
    }
}

详解C语言结构体中的char数组如何赋值

结语这就是最近遇到的问题,这个问题困扰了很久,相信许多的初学者也遇到了这样的问题,但是,网上的描述根本不怎么好用,所以,希望本博主遇到的这个问题能帮助到你

总结

到此这篇关于C语言结构体中的char数组如何赋值的文章就介绍到这了,更多相关C语言结构体中char数组赋值内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://www.cnblogs.com/liuyangfirst/p/15964945.html

延伸 · 阅读

精彩推荐
  • C/C++C++11 移动构造函数的使用

    C++11 移动构造函数的使用

    本文主要介绍了C++11 移动构造函数的使用,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    庭树3902022-09-05
  • C/C++C++读取配置文件的示例代码

    C++读取配置文件的示例代码

    这篇文章主要介绍了C++读取配置文件的示例代码,帮助大家更好的理解和学习C++开发,感兴趣的朋友可以了解下...

    gongluck6422021-09-23
  • C/C++VS Code C/C++环境配置教程(无法打开源文件“xxxxxx.h”或者检测到 #include 错误,请更新includePath)(POSIX API)

    VS Code C/C++环境配置教程(无法打开源文件“xxxxxx.h”或者检测到

    这篇文章主要介绍了VS Code C/C++环境配置教程(无法打开源文件“xxxxxx.h” 或者 检测到 #include 错误。请更新includePath) (POSIX API),本文给大家介绍的非常详细...

    融茧化蝶13332021-09-23
  • C/C++C/C++ 宏详细解析

    C/C++ 宏详细解析

    关于宏的一些语法问题,可以在google上找到。相信我,你对于宏的了解绝对没你想象的那么多。如果你还不知道#和##,也不知道prescan,那么你肯定对宏的了...

    C语言教程网8322020-12-29
  • C/C++C语言实现二叉链表存储

    C语言实现二叉链表存储

    这篇文章主要为大家详细介绍了C语言实现二叉链表存储的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    data_heng10762021-07-01
  • C/C++C++类与对象之日期类的实现

    C++类与对象之日期类的实现

    这篇文章主要介绍如何实现C++中的日期类相关资料,需要的朋友可以参考下面文章的具体内容...

    世_生11382022-01-04
  • C/C++C++实现二维图形的傅里叶变换

    C++实现二维图形的傅里叶变换

    这篇文章主要介绍了C++实现二维图形的傅里叶变换的方法,是C++程序设计里一个重要的应用,需要的朋友可以参考下...

    C++教程网10342021-01-30
  • C/C++基于C++输出指针自增(++)运算的示例分析

    基于C++输出指针自增(++)运算的示例分析

    本篇文章是对C++中输出指针自增(++)运算的示例进行了详细的分析介绍,需要的朋友参考下...

    C++教程网4882020-12-10