strcpy() 和字符串数组

2023-12-31

我需要将用户的输入存储到字符串数组中。

#include <stdlib.h>
#include <stdio.h>
#include <string.h>

char *history[10] = {0};

int main (void) {

    char input[256];

    input = "input";

    strcpy(history[0], input);

    return (EXIT_SUCCESS);

}

在终端上运行它,我得到一个分段错误,在 NetBeans 中,我得到 main.c:11: error: incompatible types in assignment。我还尝试移动所有历史记录以将最新输入存储到第一个位置(历史记录[0])。

history[9] = history[8];
history[8] = history[7];
history[7] = history[6];
history[6] = history[5];
history[5] = history[4];
history[4] = history[3];
history[3] = history[2];
history[2] = history[1];
history[1] = history[0];
history[0] = input;

但这会导致这样的输出。

如果输入是“输入”

历史0:输入 历史1:空 ETC。

如果输入是“新”

历史 0:新 历史1:新 历史 2:空 ETC。

每次输入新的输入时,指向字符串的指针都会移动,但这只会导致最新的值保存在历史数组中。


您需要为字符串分配空间。这可以通过多种方式完成,两个主要的竞争者如下所示:

char history[10][100];

and

char *history[10];
for (j = 0;  j < 10;  ++j)
    history [j] = malloc (100);

第一个静态分配 10 个字符缓冲区,每个缓冲区 100 个字符。正如您所写,第二个静态分配十个指向字符的指针。通过用动态分配的内存(每个可以是任意长度)填充指针,以后就有内存可以读取字符串。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

strcpy() 和字符串数组 的相关文章

随机推荐

  • 有效去除数组中的重复项

    如何从具有以下约束的数组中删除和记录重复项 运行时间最多必须为 O n log n 使用的额外内存最多必须为 O n 结果必须满足以下条件 重复项必须移动到原始数组的末尾 必须保留每个唯一元素第一次出现的顺序 例如 从此输入 int A 2
  • Android 中可扩展列表视图中的图像图标

    我想在可扩展列表视图中添加图像图标 我看过他们仅在子元素中添加的教程 是否有其他方法可以在父元素中添加图像图标 任何帮助 将不胜感激 提前致谢 您还可以在 XML 中定义自己的 groupIndicator 首先定义自己的drawable
  • 如何有效地从向量C++中删除元素

    我有一个由向量 对 V1 V2 组成的向量 称为pairV1V2 其形式如下 1 2 3 938 462 4837 gt V1 V2 3 9 13 938 0472 944 81 84 93 938 84 845 那么我需要保留以下内容 1
  • 如何在 C# 中比较两个 JSON 并忽略某些键?

    我有两个需要比较的 JSON 对象 但是我想排除某些属性 有没有一种有效的方法可以做到这一点 而无需迭代所有键 我正在使用 JSON NET 它具有 JToken DeepEquals 并且非常出色 但它不允许我排除某些键 Thanks 好
  • 如何在qt中通过QSignalMapper传递参数

    我想用Qt制作一个下载器 我在使用 QSignalMapper 时遇到问题 QNetworkReply中有信号 downloadProgress qint64 qint64 我有很多下载任务 所以我使用 QSignalMapper 来处理信
  • _CRTDBG_MAP_ALLOC 不显示文件名

    我正在尝试检测内存泄漏 并且使用 make CRTDBG MAP ALLOC 宏来定位泄漏区域 所以我定义 MACRO 如下 ifdef DEBUG define CRTDBG MAP ALLOC include
  • Tomcat自行关闭

    我在 CentOS 6 5 64 位和 OpenJDK 1 7 64 上运行 Tomcat 7 0 53 我有几台服务器 偶尔 例如每周随机一次 Tomcat 会正常关闭自己 我已经研究这个问题几个月了 但找不到原因 唯一的模式似乎是很长一
  • 命名元组错误[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试使用namedtuple 将Python 对象序列化为JSON 但我收到这个错误 谷歌没有帮助 Traceback most r
  • ASP.NET MVC:在数据输入表单中搜索

    感谢您的阅读 我正在构建一个数据输入表单 我试图找出一种方法 让用户提供一个条件 例如姓氏 在员工表中搜索符合条件的所有员工 以他们可以选择正确员工的方式显示结果 然后通过该员工的 ID 返回到数据输入表单 以便他们可以完成记录并保存 Th
  • HTML2PDF 对日语 (utf8) 的支持不起作用

    对于 PHP 中的报告生成 我使用 HTML2PDF 它适用于英语 但无法为日语提供正确的输出 如何在 hHTML2PDF 库中设置 utg8 字符 有没有办法在 HTML2PDF 库中实现这一点 我得到的输出类似于 而不是日语文本 在 v
  • 在 iOS 中将日期格式化为 dd-MMM

    我一直在寻找这个但找不到它 我在 NSDictionary 中有一个包含 NSDate 的对象 现在标准的 NSDate 对象相当长 我想以 dd MMM 格式向用户显示 例如 原始日期可能是2012 04 23 00 00 00 0000
  • @-moz-document url-prefix() 的作用是什么?

    在西蒙 科里森的新中旧的响应式网页设计 https colly com v4 在CSS中 有几个这样的声明 moz document url prefix fl float left margin 12px 4px 0 0 padding
  • AFHTTPSessionManager 使用基于 SOAP 的服务

    我查了几个帖子 this https stackoverflow com questions 24181844 how to convert afnetworking service invoke to use afhttpsessionm
  • 作为 System.Net.Mail 附件的流为 0 字节

    我有一个项目 我正在使用 PDF 生成器将文件发送给用户 我们希望为用户提供将此文件附加到电子邮件的选项 但我们在同时使用 Stream 对象和附件逻辑时遇到了问题 我们从 ABCpdf 开始 它有两种保存方法 它可以保存到 Stream
  • 为什么JVM堆不断增长?

    我编写了一个简单的程序并使用 jconsole exe 来监视其堆大小 public class HeapTest public static void main String args while true Here is the res
  • 构建通知时出错

    我正在使用这个教程http www vogella com articles AndroidNotifications article html http www vogella com articles AndroidNotificati
  • 通过 jquery ajax 提交联系表单时出错

    基于此question https stackoverflow com questions 15767317 initialize javascript in php script for a contact form我不得不重写我的联系表
  • AngularJS ng-repeat 处理空列表情况

    我认为这将是一个很常见的事情 但我找不到如何在 AngularJS 中处理它 假设我有一个事件列表并想用 AngularJS 输出它们 那么这很简单 ul li event title li ul 但是当列表为空时我该如何处理呢 我想要一个
  • 为什么我收到“无法发送 GpuChannelMsg_CreateCommandBuffer”错误?

    我收到以下错误 DevTools listening on ws 127 0 0 1 49722 devtools browser e3cdef84 2a4f 4829 8cb2 4baf45efa446 0903 065243 722 E
  • strcpy() 和字符串数组

    我需要将用户的输入存储到字符串数组中 include