前景提示

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

typedef struct SequenceList { // 数组的元素
char element[20]; // 数组的长度
int length; };
  • 定义一个结构体,结构体中有两个变量,其中一个是char类型的数组指针,那么,怎么向这个数组中插入数据,打印数据呢?

// 定义顺序表结构体
typedef struct SequenceList { char *elment; int length;
};

这里的结构体处理的步骤

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

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

一.char数组类型的处理

  • 1.结构体初始化

SequenceList L;
L.element = (char*)malloc(sizeof(char)*10);
L.length = 10
  • 2.结构体内数据赋值(简单法)

L.elment[0] = 1;
L.elment[1] = 2;
L.elment[2] = 3;
L.elment[3] = 4;
L.elment[4] = 5;
  • for循环

for (int i = 0; i < 10; i++)
{
L.elment[i] = i+1;
}
  • 3.结构体内输出数据

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

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

  • 1.结构体初始化

//结构体初始化
MyList L; L.length = LENGTH; L.elment = (char*)malloc(L.length * sizeof(char));
  • 2.结构体内数据赋值

//结构体赋值
for (int i = 0; i < LENGTH; i++)
{
*(L.elment + i) = 'A' + i;
}
  • 3.结构体内输出数据

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

三.全部代码

1. char数组

// 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));
}
} }

2. char数组指针

// 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数组怎么赋值?的更多相关文章

  1. C语言 结构体中的零长度数组

    /* C语言零长度数组大小和取值问题 */ #include <stdio.h> #include <stdlib.h> #include <string.h> s ...

  2. 在C语言结构体中添加成员函数

    我们在使用C语言的结构体时,经常都是只定义几个成员变量,而学过面向对象的人应该知道,我们定义类时,不只是定义了成员变量,还定义了成员方法,而类的结构和结构体非常的相似,所以,为什么不想想如何在C语言结 ...

  3. C语言 结构体中的成员域偏移量

    //C语言中结构体中的成员域偏移量 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> # ...

  4. C语言结构体中的函数指针

      这篇文章简单的叙述一下函数指针在结构体中的应用,为后面的一系列文章打下基础 本文地址:http://www.cnblogs.com/archimedes/p/function-pointer-in ...

  5. C语言 结构体中属性的偏移量计算

    //计算结构体偏移量 #include<stdio.h> #include<stdlib.h> #include<string.h> //详解:对于offscfof ...

  6. c语言结构体中的冒号的用法

    结构体中常见的冒号的用法是表示位域. 有些信息在存储时,并不需要占用一个完整的字节,   而只需占几个或一个二进制位.例如在存放一个开关量时,只有0和1   两种状态,   用一位二进位即可.为了节省 ...

  7. C语言结构体中字符数组的问题

    第一个程序 #include <stdio.h> #include <string.h> typedef struct student { char name[10]; int ...

  8. c 结构体中的变长数组

    在Linux系统里,/usr/include/linux/if_pppox.h里面有这样一个结构: struct pppoe_tag { __u16 tag_type; __u16 tag_len; ...

  9. c 结构体中存在指针,指针的不同赋值方法

    #include<stdio.h>#include<stdlib.h>#include<string.h>struct parameter{ char *fd; i ...

随机推荐

  1. T-SQL的存储过程

    1.简介 存储过程可以说是一个记录集,它是由一些T-SQL语句组成的代码块,这些T-SQL语句代码像一个方法一样实现一些功能(对单表或多表的增删改查),然后再给这个代码块取一个名字,在用到这个功能的时 ...

  2. 使用Xamarin开发移动应用示例——数独游戏(一)项目的创建与调试

    最近项目中需要移动客户端,由于团队基本上使用.Net产品线,所以决定使用Xmarin进行开发,这样技术路线统一,便于后期维护.官网上是这样介绍的" Xamarin 允许你使用 .NET 代码 ...

  3. 学习AJAX必知必会(4)~JQuery发送Ajax请求

    一.JQuery发送Ajax请求 ■ 对于get和post请求,jQuery内部封装了Ajax请求的4个步骤和数据格式的设置 ■ 对于Ajax通用请求,jQuery内部封装了Ajax请求的4个步骤和数 ...

  4. gin框架中请求参数的绑定与多数据格式处理

    package main import ( "fmt" "github.com/gin-gonic/gin" ) // gin框架提供给开发者表单实体绑定的功能 ...

  5. golang中channel

    1. Channel是Go中的一个核心类型,你可以把它看成一个管道,通过它并发核心单元就可以发送或者接收数据进行通讯(communication). 2. select package main im ...

  6. LoadRunner编写socket性能测试脚本

    利用LoadRunner编写socket性能测试脚本 一.概述 Loadrunner拥有极为丰富的工具箱,供予我们制造出各种奇妙魔法的能力.其中就有此次要讨论的socket套接字操作. 二.socke ...

  7. JSP response.setCharacterEncoding与response.setContentType的区别

    问题描述 昨天在参考别人的项目时,发现页面引用js,css等文件总是乱码,后来才发现是MIME类型统一设置为text/html,并且仅仅编码设置了浏览器端的解析编码.另外,可以先通过文本编辑器(如no ...

  8. JFrame 的层次结构 及 背景设置说明

    感谢原文:https://blog.csdn.net/qq_32006373/article/details/49659129 一.JFrame 的层次结构 我们通过两个图来说明一下 JFrame 的 ...

  9. get方式和post方式的区别

     1.请求的URL地址不同:             post:"http://192.168.13.83:8080/itheima74/servlet/LoginServlet" ...

  10. java篇之JDBC原理和使用方法

    JDBC学过但又属于很容易忘记的那种,每次要用到,都要看下连接模式.每次找又很费时间,总之好麻烦呀呀呀,所以写篇博客,总结下原理和常用接口,要是又忘了可以直接来博客上看,嘿嘿. 一.什么是JDBC 1 ...