You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C语言中创建包含300个相同单词的数组?

C语言实现重复存储同一单词300次

先指出你代码里的核心问题:

  • 赋值方向完全搞反了:你当前是把alotWord的内容往word里写,但实际需求是把word的内容复制到alotWord中
  • 数组定义要匹配需求:如果要得到wordwordword...这种连续长字符串,alotWord应该定义为一维数组;如果是存储300个独立的"word",才用二维数组,但要预留字符串结束符的空间

下面给出两种符合需求的实现方式:

方式一:生成连续的长字符串(如word重复300次)

这种方式会得到一个包含300次"word"的连续字符串,总长度为4*300 + 1(1200个字符+1个字符串结束符):

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

int main()
{
    char word[] = "word";
    int word_len = strlen(word);
    // 数组长度 = 单词长度 * 重复次数 + 1(预留'\0'的位置)
    char alotWord[word_len * 300 + 1];
    // 初始化数组为空字符串
    alotWord[0] = '\0';
    
    for(int i = 0; i < 300; i++)
    {
        // 每次将word追加到alotWord末尾
        strcat(alotWord, word);
    }
    
    // 输出结果验证
    printf("%s\n", alotWord);
    return 0;
}

方式二:用二维数组存储300个独立的"word"

如果需要把300个"word"分别存在数组的不同元素里(每个元素是独立的单词),可以这么写:

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

int main()
{
    char word[] = "word";
    // 二维数组:300个元素,每个元素预留5个字符空间(4个字符+1个'\0')
    char alotWord[300][5];
    
    for(int i = 0; i < 300; i++)
    {
        // 直接用strcpy复制整个字符串(自动包含'\0')
        strcpy(alotWord[i], word);
        
        // 也可以用你原来的循环方式,注意修正赋值方向并手动加结束符:
        // for(int j = 0; j < 4; j++)
        // {
        //     alotWord[i][j] = word[j];
        // }
        // alotWord[i][4] = '\0';
    }
    
    // 输出前5个元素验证
    for(int i = 0; i < 5; i++)
    {
        printf("%s ", alotWord[i]);
    }
    printf("\n");
    return 0;
}

关键注意点

  • C语言的字符串必须以'\0'结尾,定义数组时一定要预留足够空间,否则会出现乱码或内存越界问题
  • 使用strcpy、strcat、strlen这类字符串操作函数时,必须包含头文件<string.h>
  • 如果用手动循环复制字符,记得给每个字符串手动添加'\0'

内容的提问来源于stack exchange,提问作者Halim Berke

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 06:20:41