【发布时间】:2021-04-28 12:09:06
【问题描述】:
我有个抽象的概念就是用for循环来获取一个字符串的特定相邻字符并入栈,基本上就是把一个字符串表达式的所有常量单独入栈;例如字符串:“1111+(2222-3333)”将被放入堆栈,如“1111”、“2222”和“3333”。我在下面有一段代码从这个抽象概念开始,但首先尝试了一个简单的代码,不幸的是它没有输出复制特定相邻字符的预期结果。
char expression[20]={""},sub[20]={""};
scanf("%[^\n]%*c",&expression);
sub[15]=expression[15];
sub[16]=expression[16];
sub[17]=expression[17];
sub[18]=expression[18];
printf("%c %c %c %c\n",sub[15],sub[16],sub[17],sub[18]); //to check if copied successfully
printf("sub= %s",sub); //doesnt print expected output
【问题讨论】:
-
它输出什么?
-
@Das Falsche Gewinn 数组 sub 由零初始化。所以数组的第一个字符为零。调用 printf("sub= %s",sub); 不会输出任何内容因为该函数将决定数组包含一个空字符串。