main 里面的 buf[n] = '\0'; 是什么意思啊? 如果我想让输出的字符之间加上空格又应该怎么改呢?

问题描述:

#include "stdio.h"

class Machine
{
public:
    char Play()
    {
        return 'R';
    }
};

class Human
{
public:
    char Play()
    {
        char ch;
        //printf("s?r?p?\n");
        scanf("%c", &ch);
        return ch;
    }
};

class Referee
{
public:
    char Judge(char m, char p)
    {
        if (m == p) return 'T';
        if ((m == 'S' && p == 'P') ||
            (m == 'P' && p == 'R') ||
            (m == 'R' && p == 'S'))
            return 'L';
        else
            return 'W';
    }
};

int main()
{
    Machine m;
    Human p;
    Referee r;
    int n;
    char buf[100];
    scanf("%d", &n);
    for (int i = 0; i < n; i++)
        buf[i] = r.Judge(m.Play(), p.Play());
    buf[n] = '\0';
    printf("%s\n", buf);
    return 0;
}

截断字符串。加上空格那个,可以帮你修改。