c中数组的随机字符串

时间:2011-01-04 12:36:16

标签: c arrays random

我是C的新手,但不是编程。我正在尝试创建一个程序,该程序接受输入并使用已保存在数组中的随机字符串进行回复(例如)。

我不是要创建一个随机字符串,我希望它们“固定”,就像在Java中一样:

String [] sa; 
sa[0] = "Hello, World"; 
sa[1] = "Hi dude!";

4 个答案:

答案 0 :(得分:5)

const char *sa[]={"Hello, World","Hi dude!"};

然后你可以做

return sa[i];

返回值为char *
只需确保在界限内

答案 1 :(得分:3)

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

int main() {
    const char *messages[] = {
        "Hello!",
        "How are you?",
        "Good stuff!"
    };
    const size_t messages_count = sizeof(messages) / sizeof(messages[0]);
    char input[64];
    while (1) {
        scanf("%63s", input);
        printf("%s\n", messages[rand() % messages_count]);
    }
    return 0;
}

答案 2 :(得分:2)

目前还不清楚你究竟想要什么,但这里简要介绍了字符串在C语言中的工作原理。

在C中没有像C一样的数据类型的字符串。你必须使用字符数组。对于字符串数组,您必须使用二维字符数组。

char myStrings[MAX_NUMBER_OF_STRING][MAX_LENGTH_OF_STRING];

答案 3 :(得分:1)

这是你在寻找的东西:

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

int main(int argc, char** argv)
{
    char buffer[42];
    const char *mytext[] = {"A1", "A2", "A3"};
    scanf("%41s", buffer);
    srand(time(NULL));
    printf("Random text: %s\n", mytext[rand() % (sizeof(mytext) / sizeof(mytext[0]))]);
    return 0;
}