如何将字符数组中的字符串添加到 C 中的字符串

比特棒

我正在尝试创建一个从片假名(日语音节)生成随机单词的程序。

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <wchar.h>
#include <locale.h>

char* word;
char *kata[] = {"ア", "イ", "ウ", "エ", "オ", "カ", "キ", "ク", "ケ", "コ", "サ", "シ", "ス","セ","ソ","タ","チ","ツ","テ","ト","ナ","ニ","ヌ",
"ネ","ノ","ハ","ヒ","フ","ヘ","ホ","マ","ミ","ム","メ","モ","ヤ","ユ","ヨ","ラ","リ","ル","レ","ロ","ワ","ヲ","ン","ガ","ギ",
"グ","ゲ","ゴ","ザ","ジ","ズ","ゼ","ゾ","ダ","ヂ","ヅ","デ","ド","バ","ビ","ブ","ベ","ボ","パ","ピ","プ","ペ","ポ","ャ","ュ",
"ョ","ヴ","ァ","ィ","ゥ","ェ","ォ"};
int x = 0;

void generator (int length) {
      for (int z=0; z<length; z++) {
        x = rand() % sizeof(*kata);
        concat(word,kata[x]);
      }
}

int main (void) {
    srand((unsigned) time(NULL));
    int length = rand() % 5 + 2;
    generator(length);
    puts(word);
}

word是我想要打印的字符串,而kata是一个包含片假名的字符数组。但是,如果我不包含“*”来使数组成为字符串数组,C 会抱怨一个字符中有多个字符。其余代码在我的测试中运行良好。

我正在使用 BoUoW,它在 Windows 上有一个完整的 Ubuntu 环境,所以我认为这不是问题,而是我如何将字符串数组放入字符串中。

我在大约一个小时内用 Java 完成了一个类似的程序,这花了我更长的时间。虽然这可能是因为我是 C 的新手。

Ôrel

应该添加很多检查(例如在word上溢出)kata上的元素数量是sizeofkata/sizeof一个元素你可以做一个宏countof strcat是你需要的功能。

这个想法就像

char *kata[] = {"ア", "イ", "ウ", "エ", "オ", "カ", "キ", "ク", "ケ", "コ", "サ", "シ", "ス","セ","ソ","タ","チ","ツ","テ","ト","ナ","ニ","ヌ
",
    "ネ","ノ","ハ","ヒ","フ","ヘ","ホ","マ","ミ","ム","メ","モ","ヤ","ユ","ヨ","ラ","リ","ル","レ","ロ","ワ","ヲ","ン","ガ","ギ",
    "グ","ゲ","ゴ","ザ","ジ","ズ","ゼ","ゾ","ダ","ヂ","ヅ","デ","ド","バ","ビ","ブ","ベ","ボ","パ","ピ","プ","ペ","ポ","ャ","ュ",
    "ョ","ヴ","ァ","ィ","ゥ","ェ","ォ"};
int x = 0;

static void generator (int nb, char *word, size_t n) {
    word[0] = '\0';
    while (nb-- > 0) {
        x = rand() % (sizeof(kata) / sizeof(char*));
        strcat(word, kata[x]);
    }
}

int main (void) {
    char word[64];
    srand((unsigned) time(NULL));
    int nb = rand() % 5 + 2;
    generator(nb, word, sizeof(word));
    puts(word);
    return 0;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将JSON字符串添加到C#中的现有字符串

来自分类Dev

将字符串添加到char数组并在C中以\ 0分隔

来自分类Dev

如何在C中将字符串添加到字符串数组

来自分类Dev

如何将字符串转换为 C++ 中字符串中字母大小的字符数组?

来自分类Dev

如何将字符串数组中的字符串存储到C中的变量中

来自分类Dev

C#如何最好地将字符串数组的元素添加到通用列表

来自分类Dev

C#如何最好地将字符串数组的元素添加到通用列表

来自分类Dev

如何将子字符串添加到字符串中

来自分类Dev

将\添加到c#中带引号的字符串

来自分类Dev

c ++将“\ u”添加到字符串

来自分类Dev

如何将字符串添加到数组?

来自分类Dev

如何将字符串添加到数组?

来自分类Dev

C#如何将字符串列表添加到列表中

来自分类Dev

c字符串未正确添加到字符串中,并且在使用printf时输出□

来自分类Dev

如何在C中字符串的开头添加字符?

来自分类Dev

如何正确清空 C 中的字符串(字符数组)?

来自分类Dev

如何将多个文本文件中的字符串添加到数组

来自分类Dev

如何将字符串数组组件添加到 XML 配置中?

来自分类Dev

验证字符串时,将字符串追加到字符串数组。C ++

来自分类Dev

验证字符串时,将字符串追加到字符串数组。C ++

来自分类Dev

如何将标记化的字符串存储到C中的数组中

来自分类Dev

如何将数组中的字符串分配给 C 中的变量(来自函数)?

来自分类Dev

如何将标记附加到C中的字符串变量?

来自分类Dev

如何使用C ++将字符存储在字符串中

来自分类Dev

如何将字符串(单词)添加到字符串[]数组?Java,输入

来自分类Dev

如何将字符串添加到数组并返回字符串

来自分类Dev

在特定位置将字符串添加到字符数组中,从而在 C 编程中导致缓冲区溢出

来自分类Dev

将字符串存储在c中的数组中时截断字符串

来自分类Dev

将字符串读取到C中的二维字符串数组中

Related 相关文章

  1. 1

    将JSON字符串添加到C#中的现有字符串

  2. 2

    将字符串添加到char数组并在C中以\ 0分隔

  3. 3

    如何在C中将字符串添加到字符串数组

  4. 4

    如何将字符串转换为 C++ 中字符串中字母大小的字符数组?

  5. 5

    如何将字符串数组中的字符串存储到C中的变量中

  6. 6

    C#如何最好地将字符串数组的元素添加到通用列表

  7. 7

    C#如何最好地将字符串数组的元素添加到通用列表

  8. 8

    如何将子字符串添加到字符串中

  9. 9

    将\添加到c#中带引号的字符串

  10. 10

    c ++将“\ u”添加到字符串

  11. 11

    如何将字符串添加到数组?

  12. 12

    如何将字符串添加到数组?

  13. 13

    C#如何将字符串列表添加到列表中

  14. 14

    c字符串未正确添加到字符串中,并且在使用printf时输出□

  15. 15

    如何在C中字符串的开头添加字符?

  16. 16

    如何正确清空 C 中的字符串(字符数组)?

  17. 17

    如何将多个文本文件中的字符串添加到数组

  18. 18

    如何将字符串数组组件添加到 XML 配置中?

  19. 19

    验证字符串时,将字符串追加到字符串数组。C ++

  20. 20

    验证字符串时,将字符串追加到字符串数组。C ++

  21. 21

    如何将标记化的字符串存储到C中的数组中

  22. 22

    如何将数组中的字符串分配给 C 中的变量(来自函数)?

  23. 23

    如何将标记附加到C中的字符串变量?

  24. 24

    如何使用C ++将字符存储在字符串中

  25. 25

    如何将字符串(单词)添加到字符串[]数组?Java,输入

  26. 26

    如何将字符串添加到数组并返回字符串

  27. 27

    在特定位置将字符串添加到字符数组中,从而在 C 编程中导致缓冲区溢出

  28. 28

    将字符串存储在c中的数组中时截断字符串

  29. 29

    将字符串读取到C中的二维字符串数组中

热门标签

归档