【发布时间】:2022-01-25 08:53:20
【问题描述】:
嘿,我是编程初学者,我需要帮助来解决这个问题。 我正在编写一个代码来输入一个字符并将其转换为相反的大小写(如果它是小写,则转换为大写,反之亦然),当用户输入分号(;)时,该代码应该终止。
#include<stdio.h>
int main(int argc, char const *argv[])
{
/* code */
char c;
while(1)
{
c=getchar();
if(c<97)
{
printf("%c",c+32);
}
if(c>=97)
{
printf("%c",c-32);
}
if(c == ';')
{
break;
}
}
return 0;
}
我得到的输出:
t
T*
*H
h*
*j
J*
*;
[
问题 - 输入第一个字符后,当我按 Enter 时,它会转换为大写字母,这很好,但我也得到一个星号 (*)。再次输入下一个字符,当我按下回车键时,我得到 *.另外,当我按下 ;程序确实终止了,但它打印了 "[" 。 你能帮我解决这个问题吗,不确定为什么 * 和 [ 会出现在 O/P 中。
预期输出:
t
T
H
h
j
J
;
【问题讨论】:
-
旁注继续:函数
isalpha也可能有用。