回复 楼主 人生如梦似的
你所给的代码是错误的,正确的如下:
#include<stdio.h>
void main()
{
char str[]="tudent";
char c;
int k;
for(k=1;(c=str[k])!='\0';k++)
{
switch(c)
{
case't':putchar('#');
case 'n':putchar('$');break;
default:continue;
}
putchar('*');
}
}
运行该程序,结果是$*#$*
解释:(我是大一的,刚学,希望你能听得懂)
for(k=1;(c=str[k])!='\0';k++)
{
switch(c)
{
case't':putchar('#');
case 'n':putchar('$');break;
default:continue;
}
putchar('*');
}
k=1,就跳过的字符数组的第一个字符,直接判断第二个字符,就是字符u
k=1时判断字符u,switch语句里面没有符合条件的,执行default:continue;结束本次循环
k=2时,情况同上
知道k=4,即字符为n时,符合条件执行case 'n':putchar('$');break; break跳出switch语句然后继续执行putchar('*');
k=5时,字符为t,符合条件执行case't':putchar('#');该语句后面没有break结束,继续执行case 'n':putchar('$');break;
然后执行putchar('*');
k=6时,(c=str[k])!='\0'不符合条件结束for循环。