Switch Case帮助C.

Rya*_*yan 0 c switch-statement

我试图检查字母对另一个字母的字母,检查用户字[k]中的第一个字母与letterstest [t]中的所有字母,如果它们匹配将匹配字母test [t]的字母与0匹配,那么它不能是再次匹配.我感到困惑的地方是在switch(){以及究竟会起作用的地方.有没有案例:什么可以切换字符串的字母?

for (k = 0; k<wordsize; k++){
    for(t=0; t<8, t++){
        if (userword[k] != letterstest[t]) 
            return 0;

        if (userword[k] == letterstest[t]){    
            switch (letterstest[t]){

                    //unsure what case would work here
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

rua*_*akh 5

我觉得你误解了switch是什么.switch是一个选择结构,如if/ else.例如,这两个代码片段(通常)是等效的:

if(a == 0)
    printf("%s\n", "zero");
else if(a == 1)
    printf("%s\n", "one");
else if(a == 2)
    printf("%s\n", "two");
else
    printf("%s\n", "invalid");

switch(a)
{
    case 0:
        printf("%s\n", "zero");
        break;
    case 1:
        printf("%s\n", "one");
        break;
    case 2:
        printf("%s\n", "two");
        break;
    default:
        printf("%s\n", "invalid");
}
Run Code Online (Sandbox Code Playgroud)

我不完全清楚你要做什么,但当你写"如果他们匹配切换匹配字母的字母[t]与0,所以它不能再次匹配",听起来你的意思是:

    if (userword[k] == letterstest[t]){
        letterstest[t] = '\0';
    }
Run Code Online (Sandbox Code Playgroud)

编辑补充说:好的,我我现在明白你要做的是:

  • 要确认之间的每一个角色userword[0]userword[wordsize-1]介于两者之间会出现letterstest[0]letterstest[7].
  • 如果给定的字符在userword[0]和之间多次出现userword[wordsize-1],那么它必须至少出现在letterstest[0]和之间letterstest[7].那就是-之间的字符letterstest[0],并letterstest[7]只能算一次.
  • 你确定与改变之间出现什么字符letterstest[0]letterstest[7],只要最后的答案是正确的; 也就是说,您不需要保留内容letterstest.
  • 字符'\0'不会出现在userword[0]和之间的任何地方userword[wordsize-1],因此可以用作"虚拟"值,意思是"不匹配".

那是对的吗?

如果是这样,那么你可以写:

for(k = 0; k < wordsize; k++) {
    for(t = 0; t < 8; t++) {
        if(userword[k] == letterstest[t]) {
            letterstest[t] = '\0'; /* don't let letterstest[t] count again */
            break; /* O.K., we've matched userword[k], we can move on */
        }
    }
    if(t == 8) /* we reached letterstest[8] without finding a match */
        return 0;
}
return 1; /* we found a match for each character */
Run Code Online (Sandbox Code Playgroud)