梦回连营 发表于 2021-9-11 19:45:34

字符串

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

#define N 50
#define DAYS 31

int read_line(char s[]);
int reminder(char s[]);

int main(void){
        char s = {'\0'};
        int day;
        while (true){
                printf("day and remind: ");
                scanf("%d", &day);
                if (day < 1 || day > DAYS){
                        reminder(s);
                        break;
                }
                else
                        read_line(s);
        }

        return 0;
}

int read_line(char s[]){
        char str;
        char ch;
        int i = 0;
        while ((ch = getchar()) != '\n')
                str = ch;
        str = '\0';
        strcat(s, str);
        return 0;
}

int reminder(char s[]){
        for (int i = 0; i < DAYS; i++)
                if (s != '\0')
                        printf("%d: %s\n", i+1, s);
        return 0;
}

运行的结果如下图所示,我只是让它在第二次输入相同日期的备忘事时拼接在对应的字符串后面,可是打印输出中间为什么有个空格,这是什么情况???

Max472 发表于 2021-9-11 20:18:06

开头你只打了一个空格,但是确实两个空格的距离,所以说在一开始 strcat 的时候就有了你说的空格了,所以后边才有一个空格,和前边一样
没用过strcat,你去百度看看。

梦回连营 发表于 2021-9-11 21:13:51

Max472 发表于 2021-9-11 20:18
开头你只打了一个空格,但是确实两个空格的距离,所以说在一开始 strcat 的时候就有了你说的空格了,所以后 ...

可是我这样的话却没有空格是为什么呢?
页: [1]
查看完整版本: 字符串