如果要进行迭代(“ i == [index]”),我打算使用“ continue statement”跳过特定字符。我想跳过索引5处的字符。请在下面是代码。虽然是新手。
#include <stdio.h>
#include <stdlib.h>
int main()
{
char guess[10]="Programmer";
char choice;
printf("Welcome to my guessing game\n");
printf("===============================\n");
int i;
for(i=0;i<10;i++)
{
printf("%c", guess[i]);
if(i==guess[5])
continue;
}
printf("\n\n");
printf("Guess which letter is missing\n");
scanf(" %c",&choice);
if(choice==guess[5])
{
printf("Excellent! Good point");
}else
{
printf("Ooops! Wrong answer\n");
}
return 0;
}
这里是解决方法:
还如上所述更新了数组大小(在任何地方都不会将其视为字符串,但是比后悔更安全)。
#include <stdio.h>
#include <stdlib.h>
int main()
{
char guess[12]="Programmer";
char choice;
printf("Welcome to my guessing game\n");
printf("===============================\n");
int i;
for(i=0;i<10;i++)
{
if( i != 5 )
{
printf("%c", guess[i]);
}
}
printf("\n\n");
printf("Guess which letter is missing\n");
scanf(" %c",&choice);
if(choice==guess[5])
{
printf("Excellent! Good point");
}else
{
printf("Ooops! Wrong answer\n");
}
return 0;
}
这里是输出:
首先,您需要在要跳过的指令之前编写继续语句。您要跳过在guess [5]中相同的每个字符还是要跳过索引5?
如果跳过所有与索引5的字母相同的字母:
for(i=0;i<10;i++)
{
if(guess[i]==guess[5]) continue;
printf("%c", guess[i]);
}
如果您只想跳过索引5处的字母,请尝试:
for(i=0;i<10;i++)
{
if(i==5) continue;
printf("%c", guess[i]);
}
您不应该与数组的元素进行比较,只需与要跳过的索引进行比较。
并且您需要将continue
放在要跳过的语句之前。否则,该信件已被打印,继续操作无济于事。
for(i=0;i<10;i++)
{
if(i==5) {
continue;
}
printf("%c", guess[i]);
}