C 如何检查信件是否已阅读
有人能帮我吗?如果一封信被再次输入,我的程序如何读取,从而提示“信已读” 这是我的密码:C 如何检查信件是否已阅读,c,user-input,C,User Input,有人能帮我吗?如果一封信被再次输入,我的程序如何读取,从而提示“信已读” 这是我的密码: #include <stdio.h> #include <string.h> #include <conio.h> int main() { char alphabet[26] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; char letter; int i; for(i = 0; i < 26; i++)
#include <stdio.h>
#include <string.h>
#include <conio.h>
int main()
{
char alphabet[26] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
char letter;
int i;
for(i = 0; i < 26; i++)
{
printf("%s\n\n", alphabet);
printf("Choose a letter: ");
letter = getchar();
printf("\n\n");
for(i = 0; i < 26; i++)
{
if (letter == alphabet[i])
{
alphabet[i] = '_';
break; /* This terminates the for() loop */
}
}
printf("Result: %s\n", alphabet);
}
}
#包括
#包括
#包括
int main()
{
字符字母[26]=“ABCDEFGHIJKLMNOPQRSTUVWXYZ”;
字符字母;
int i;
对于(i=0;i<26;i++)
{
printf(“%s\n\n”,字母表);
printf(“选择一个字母:”);
letter=getchar();
printf(“\n\n”);
对于(i=0;i<26;i++)
{
如果(字母==字母表[i])
{
字母表[i]='';
break;/*这将终止for()循环*/
}
}
printf(“结果:%s\n”,字母表);
}
}
如果您的输入仅由大写字母组成,则当且仅当您到达内部循环的末尾时,即如果字母表中未找到该字母,因为该字母已被替换为\u
。检查这一点的一种方法是检查内部循环后i
是否等于26。稍微干净一点的方法是使用布尔值来指示是否打破了内部循环
现在,如果您的输入可以是任何字符,最好使用单独的数组来跟踪已提供的字母,而不是替换字母表中的字母。你可以:
const char alphabet[26] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
int count[26] = {0};
及
跟踪每个字母的确切提供次数。我不完全理解您的代码,在我看来,它是php与javascript的混合体。无论如何如果由我决定,我会采取不同的方法,假设我们在这里讨论的是php,尽管您可以在javascript中执行相同的操作,但首先创建一个数组。每次输入字母时,我都会检查字母是否在数组中。如果是的话,你可以弹出一个警告,说已经输入了字母,如果不是,就在数组中“推”该字母
像这样的
<?php
$a = array();
$input is "a";
if (in_array($input, $a)) // if the letter "a" ($input) is in the array...
{
echo "This letter was already entered.";
}
else // if it's not in the array
{
array_push($a, $input); // add the letter ($input) to the array
}
?>
那相当容易。您可能有另一个大小为26的数组,并使用all false初始化,每当您获得一个字符时,您将相应的槽设置为true。然后当你得到一个字符并想检查它是否已经被输入时,你只需要检查对应的槽是否为真
顺便说一句,我认为你不希望内部for循环也使用I。您可能需要使用另一个变量,例如j,因为外部for循环使用i作为控制器,这可能会导致问题。我认为您应该有一个输入字母数组,如果没有,您可以使用两个变量
char prevletter;
char latestletter;
在此,您可以比较前一个字母是否等于最新的字母
latestletter = getchar();
if (prevletter == latestletter)
{
printf("Alredy inputted this");
}
else
{
prevletter =latestletter;
}
如果您想知道某个字母是否不是连续输入的,而是在其他尝试后重复输入的,则此代码仅适用于连续字母。您可以使用数组
char inputletters[xx];
use for loop to check if it exist in the array if yes `printf the warning else continue`
char inputletters[xx];
for(i = 0; i < xx; i++)
{
if (letter == inputletters[i])
{
printf("AlreadyInputed");
Break;
}
}
char输入字母[xx];
使用for循环检查数组中是否存在它如果是`打印警告否则继续`
字符输入字母[xx];
对于(i=0;i
然后,如果输入的字母数组中不存在输入的字母,请在此处执行插入该字母的过程我如何打印该字母在此之后已输入?在增加计数之前,您可以测试计数是否大于零。如果是,那么这封信已经提供了。我不会为你做的。我给了你很多提示。尝试一些事情,尽你所能,如果你仍然被困,问一个新问题。hindi ko po magets爵士。甘托。。gumawa ka nang数组isa pa dun mo ilalagay ung mga输入字母,tapos kada输入字母,tapos kada输入代码ko sa taas。循环iccheck的下一个输入是nasa laman ng aarray mo.pag wala Ipsok mo sya的下一个输入是tapos gawin mo流程的下一个输入是kung merun nman iprintf mo已经输入了un:)啊,所以dapat字符字母[27]:“abcdefghijklmnopqrstuvxyz
at字符输入字母[27]
atchar letter
ang laman ng code ko ganun po ba?哈哈pwede makipagfriends sayo tol,grabe marami pa akong di alam sa编程kaya matanong ako eh,pati minsan talaga nahihirapan ako。呵呵,很抱歉没有说英语伙计:)@user2803376是的,每次输入后检查输入字母如果当前输入ted字母已经存在如果是,提示用户,如果否,将当前字母包含在数组中,执行您需要执行的其他过程。@user2803376我不想给出代码。这不是一个您可以轻松获得答案的地方。我相信思考过程对您来说更具可评估性。
latestletter = getchar();
if (prevletter == latestletter)
{
printf("Alredy inputted this");
}
else
{
prevletter =latestletter;
}
char inputletters[xx];
use for loop to check if it exist in the array if yes `printf the warning else continue`
char inputletters[xx];
for(i = 0; i < xx; i++)
{
if (letter == inputletters[i])
{
printf("AlreadyInputed");
Break;
}
}