如何在C中将4个数字作为字符串打印?

时间:2013-12-14 21:58:31

标签: c string

我写了一些代码来生成4个随机数。

任何人都可以帮我使用相同的代码但是将它们打印成字符串吗?

以下是代码:

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


int main(void)
{
    int num, i;
    srand(time(NULL));  // Seed ONCE

    for(i=0; i<4; ++i) // Loop 4 times for random numbers
    {
        num = rand();
        num = num % 10;
        printf("%d\t", num);
    }

    return 0;
}

1 个答案:

答案 0 :(得分:2)

您可以用此替换for循环。它打印4个随机数字作为字符串:

printf("%04d\n", rand()%10000);

或者,如果您想要一个结果字符串,比如s,那么您可以打印或比较:

char s[4+1];    
sprintf(s, "%04d", rand()%10000);
printf("%s\n", s);

正如@anatolyg指出的那样,如果你需要,可以在这里嵌入\t个字符的简短方法:

char s[4+1];    
sprintf(s, "%d\t%d\t%d\t%d", rand()%10, rand()%10, rand()%10, rand()%10)
printf("%s", s);

并且厨房接收器回答...如果你想要一个字符串(s),那么你需要在每个数字后面嵌入\t个字符,如果你想要一些灵活性要改变所需的位数,那么这是一种方式。可能有一种更短的方法来编写这个,但我希望它正在做的事情是清楚的。 (在顶部,删除#define DIGITS (4)或您需要的任何计数。)

int bufsize = DIGITS*2+1;
char s[bufsize];
s[--bufsize] = 0;
while (bufsize) {
    s[--bufsize] = '\t';
    s[--bufsize] = '0'+rand()%10;
}
printf("%s", s);