c语言结构体中的一个char数组怎么赋值?
前景提示
- 定义一个结构体,结构体中有两个变量,其中一个是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数组怎么赋值?的更多相关文章
- C语言 结构体中的零长度数组
/* C语言零长度数组大小和取值问题 */ #include <stdio.h> #include <stdlib.h> #include <string.h> s ...
- 在C语言结构体中添加成员函数
我们在使用C语言的结构体时,经常都是只定义几个成员变量,而学过面向对象的人应该知道,我们定义类时,不只是定义了成员变量,还定义了成员方法,而类的结构和结构体非常的相似,所以,为什么不想想如何在C语言结 ...
- C语言 结构体中的成员域偏移量
//C语言中结构体中的成员域偏移量 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> # ...
- C语言结构体中的函数指针
这篇文章简单的叙述一下函数指针在结构体中的应用,为后面的一系列文章打下基础 本文地址:http://www.cnblogs.com/archimedes/p/function-pointer-in ...
- C语言 结构体中属性的偏移量计算
//计算结构体偏移量 #include<stdio.h> #include<stdlib.h> #include<string.h> //详解:对于offscfof ...
- c语言结构体中的冒号的用法
结构体中常见的冒号的用法是表示位域. 有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位.例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可.为了节省 ...
- C语言结构体中字符数组的问题
第一个程序 #include <stdio.h> #include <string.h> typedef struct student { char name[10]; int ...
- c 结构体中的变长数组
在Linux系统里,/usr/include/linux/if_pppox.h里面有这样一个结构: struct pppoe_tag { __u16 tag_type; __u16 tag_len; ...
- c 结构体中存在指针,指针的不同赋值方法
#include<stdio.h>#include<stdlib.h>#include<string.h>struct parameter{ char *fd; i ...
随机推荐
- T-SQL的存储过程
1.简介 存储过程可以说是一个记录集,它是由一些T-SQL语句组成的代码块,这些T-SQL语句代码像一个方法一样实现一些功能(对单表或多表的增删改查),然后再给这个代码块取一个名字,在用到这个功能的时 ...
- 使用Xamarin开发移动应用示例——数独游戏(一)项目的创建与调试
最近项目中需要移动客户端,由于团队基本上使用.Net产品线,所以决定使用Xmarin进行开发,这样技术路线统一,便于后期维护.官网上是这样介绍的" Xamarin 允许你使用 .NET 代码 ...
- 学习AJAX必知必会(4)~JQuery发送Ajax请求
一.JQuery发送Ajax请求 ■ 对于get和post请求,jQuery内部封装了Ajax请求的4个步骤和数据格式的设置 ■ 对于Ajax通用请求,jQuery内部封装了Ajax请求的4个步骤和数 ...
- gin框架中请求参数的绑定与多数据格式处理
package main import ( "fmt" "github.com/gin-gonic/gin" ) // gin框架提供给开发者表单实体绑定的功能 ...
- golang中channel
1. Channel是Go中的一个核心类型,你可以把它看成一个管道,通过它并发核心单元就可以发送或者接收数据进行通讯(communication). 2. select package main im ...
- LoadRunner编写socket性能测试脚本
利用LoadRunner编写socket性能测试脚本 一.概述 Loadrunner拥有极为丰富的工具箱,供予我们制造出各种奇妙魔法的能力.其中就有此次要讨论的socket套接字操作. 二.socke ...
- JSP response.setCharacterEncoding与response.setContentType的区别
问题描述 昨天在参考别人的项目时,发现页面引用js,css等文件总是乱码,后来才发现是MIME类型统一设置为text/html,并且仅仅编码设置了浏览器端的解析编码.另外,可以先通过文本编辑器(如no ...
- JFrame 的层次结构 及 背景设置说明
感谢原文:https://blog.csdn.net/qq_32006373/article/details/49659129 一.JFrame 的层次结构 我们通过两个图来说明一下 JFrame 的 ...
- get方式和post方式的区别
1.请求的URL地址不同: post:"http://192.168.13.83:8080/itheima74/servlet/LoginServlet" ...
- java篇之JDBC原理和使用方法
JDBC学过但又属于很容易忘记的那种,每次要用到,都要看下连接模式.每次找又很费时间,总之好麻烦呀呀呀,所以写篇博客,总结下原理和常用接口,要是又忘了可以直接来博客上看,嘿嘿. 一.什么是JDBC 1 ...