我的程序无法打印出完整的数组

问题描述 投票:0回答:1

这是我的代码:

#include <stdio.h>

#define NEW_LINE 10
#define TAB 9
#define SPACE 32

int main() {
    int c;
    int counter1 = 0;
    int counter2 = 0;
    int word[10][10] = { { 0 } };

    while ((c = getchar()) != EOF) {
        if (c != TAB && c != NEW_LINE && c != SPACE) {
            word[counter1][counter2] = c;
            ++counter2;
        } else {
            counter2 = 0;
            ++counter1;
        }
    }

    for (int a = 0; a <= 9; ++a) {
        printf("\n");
        for (int b = 0; b <= 9; ++b) {
            printf("%4d", word[a][b]);
        }
    }

    return 0;
}

我试图获取用户输入并保存出现的单词。我的想法是,我首先获取字母并将它们保存到一个数组中,形成一个单词,然后将每个单词保存到数组中(形成二维数组)。问题是我只打印出第一个字符数组,其余的由于某种原因被忽略。我是 C 编程的初学者,所以如果出现一些愚蠢的错误,请不要生气。

这是输出:

Hello World

  87 111 114 108 100   0   0   0

Image of the same output

arrays c output
1个回答
0
投票

只要您输入的分隔符不超过 10 个且长度不超过 10 个字母,代码看起来就可以。

发布的快照不完整:第一行对应于第二个单词

World
,但它的末尾应该有两个零,并且可以在图像底部看到另一行的顶部像素。尝试放大 VS Code 输出面板的大小。

© www.soinside.com 2019 - 2024. All rights reserved.