スイッチケースで1または2または3を選択してもループしない理由を理解できません。タスクを実行してもプログラムから抜けています.Eを押さなくてもまたはe。 あなたのお手伝いが必要です。C do while issue
char ch;
do
{
char* p;
printf("Press 1 for qu. 1 \nPress 2 for qu. 2 \nPress 3 for qu. 3\nPress 'e' or 'E' to exit\n");
scanf("%c", ch);
switch (ch)
{
case '1':
getMatrix();
break;
case '2':
printf("\nPlease enter strDestination:\n");
char str1[20], str2[20];
scanf("%s", str1);
printf("\nPlease enter strSource:\n");
scanf("%s", str2);
printf("%s\n", mystrcat(str1, str2));
break;
case '3':
printf("\nPlease enter the first string (str):\n");
char str3[20], str4[20];
scanf("%s", str3);
printf("\nPlease enter the sub string to search for(strSearch):\n");
scanf("%s", str4);
p = myStrstr(str3, str4);
if (p != 0)
printf("Location found: char %c index %d\n", *p, p - str3);
else
printf("strSearch is not found in str\n");
break;
case 'e' || 'E':
system("exit");
break;
default:
printf("Wrong input\n");
break;
}
} while (ch != 'e' || ch != 'E');
'CH!= 'e' を持っている|| ch!= 'E'は常に真です。 – Marian
あなたは 'ch'の前に '&'を忘れています:scanf( "%c"、&ch); ' –
あなたは、'!(ch == 'e' || ch == 'E') ' – Iluvatar