C 如何逐个打印每个字符?
我试图在一个包含7行4列的表中逐个打印此数组中的字符。然而,我得到的唯一输出是每一列和每一行中的整个字母表。如何按所需顺序逐个打印每个字符?C 如何逐个打印每个字符?,c,arrays,for-loop,char,header-files,C,Arrays,For Loop,Char,Header Files,我试图在一个包含7行4列的表中逐个打印此数组中的字符。然而,我得到的唯一输出是每一列和每一行中的整个字母表。如何按所需顺序逐个打印每个字符? 请注意,该表应以空格和结尾 输出应如下所示: a b c d e f g h h i j k l m n o p q r s t u v w y z . 这是我的代码: struct pagestruct sequence[ROWS]; char alfabet[] = "abcdefghijklmnopqrstuvwxyz ."; for (in
请注意,该表应以空格和
结尾
输出应如下所示:
a b c d
e f g h
h i j k
l m n o
p q r s
t u v w
y z .
这是我的代码:
struct pagestruct sequence[ROWS];
char alfabet[] = "abcdefghijklmnopqrstuvwxyz .";
for (int i = 0; i < ROWS; i++) {
printf("\n");
for (int k = 0; k < COLUMNS; k++) {
strcpy(sequence[k].page, alfabet);
printf("%s", sequence[k].page);
}
}
这里有函数。如果字符串以
“
结尾,则将数据带到”。
。如果不是,则将数据带到行数和列数或字符串末尾以避免UB。如果字符串太短,表的其余部分将填充空格。当然,你可以在这一点上打破,但我不知道这是否是一个想法
因为你想填另一张桌子我也是这么做的
#include <stdio.h>
#include <string.h>
#define SIDANTAL 7
#define BYTE 4
int main(void)
{
char alfabet[] = "abcdefghijklmnopqrstuvwxyz .";
char sequence[SIDANTAL][BYTE * 2 + 1];
char *end = strstr(alfabet, " .");
size_t len = end ? (end - alfabet + 2) : strlen(alfabet), cpos = 0;
for(size_t i = 0; i < SIDANTAL; i++)
{
for(size_t k = 0; k < BYTE; k++)
{
sequence[i][k * 2] = cpos < len ? alfabet[cpos] : ' ';
sequence[i][k * 2 + 1] = ' ';
cpos++;
}
sequence[i][BYTE * 2] = 0;
}
for(size_t i = 0; i < SIDANTAL; i++)
{
printf("%s\n", sequence[i]);
}
}
#包括
#包括
#定义SIDANTAL 7
#定义字节4
内部主(空)
{
字符alfabet[]=“abcdefghijklmnopqrstuvwxyz。”;
字符序列[SIDANTAL][BYTE*2+1];
char*end=strstrstr(alfabet,“.”);
尺寸长度=末端(末端-阿尔法贝特+2):斯特伦(阿尔法贝特),cpos=0;
对于(大小i=0;i
什么是pagestruct
?通过提供这一点,您将提供一个最小的示例。;)我将编写一个循环,从0到25运行I
。每次循环时,我都会打印alfabat[I]
,后面跟着一个空格。然后,如果i
是4的倍数,我将打印一个\n
。为了获得额外的学分,我不会在\n
之前打印空格。这确实表明我对任何语言的编程都没有任何理解。嗯。。。好吧,更多的是关于算命,而不是C:)我必须说我觉得你回答了另一个问题。。。在原始问题中,您在哪里看到了序列数组类型?@OznOg我的朋友-没有结构声明,因此我无法使用它。我的答案100%回答了这个问题,请不要T
struct pagestruct
可能类似于struct pagestruct{char page[BYTE];}代码>-可能是猜测。@rabbi76绝对不是char page[BYTE]
#include <stdio.h>
#include <string.h>
#define SIDANTAL 7
#define BYTE 4
int main(void)
{
char alfabet[] = "abcdefghijklmnopqrstuvwxyz .";
char sequence[SIDANTAL][BYTE * 2 + 1];
char *end = strstr(alfabet, " .");
size_t len = end ? (end - alfabet + 2) : strlen(alfabet), cpos = 0;
for(size_t i = 0; i < SIDANTAL; i++)
{
for(size_t k = 0; k < BYTE; k++)
{
sequence[i][k * 2] = cpos < len ? alfabet[cpos] : ' ';
sequence[i][k * 2 + 1] = ' ';
cpos++;
}
sequence[i][BYTE * 2] = 0;
}
for(size_t i = 0; i < SIDANTAL; i++)
{
printf("%s\n", sequence[i]);
}
}