马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
/*从键盘输入字符,如果是小写字母则输出大写,如果是大写字符则输出小写,其他字符原样输出*/
#include<stdio.h>
#include<conio.h>
void main()
{
char ch1;
int i, j;
printf("请输入一个字符\n");
ch1 = getchar();
for (j = 0, i = 0; i <= 127; i++)
{
ch1 % i == 1;//判断ch1是不是ASC表中的字符
j++;//如果是则j+1
}
switch (!j)
{
case 1:
printf("请输入合法字符");//输入两个以上的字符或者两位以上的数字都是非法
break;
case 0:
if (ch1 >= 'A' && ch1 <= 'Z')
{
printf("%c", ch1 + 32);
}
if (ch1 >= 'a' && ch1 <= 'z')
{
printf("%c", ch1 - 32);
}
else
{
printf("%c", ch1);
}
break;
default:
break;
}
}
------------------------------------------------------------------------------------------------------------------------------- > & 'c:\Users\Administrator\.vscode\extensions\ms-vscode.cpptools-0.22.1\debugAdapters\bin\WindowsDebugLauncher.exe' '--stdin=Microsoft-MIEngine-In-r4r40wf4.25g' '--stdout=Microsoft-MIEngine-Out-zfhvdinq.ox2' '--stderr=Microsoft-MIEngine-Error-hgr1ab3a.b1s' '--pid=Microsoft-MIEngine-Pid-xydurwov.uzw' '--dbgExe=E:\MingGW\bin\gdb.exe' '--interpreter=mi'
请输入一个字符
999
9
PS E:\Administrator\Documents\Visual Studio 2019> & 'c:\Users\Administrator\.vscode\extensions\ms-vscode.cpptools-0.22.1\debugAdapters\bin\WindowsDebugLauncher.exe' '--stdin=Microsoft-MIEngine-In-wiasmjlj.kor' '--stdout=Microsoft-MIEngine-Out-b1o45snm.z4p' '--stderr=Microsoft-MIEngine-Error-0zciin00.mab' '--pid=Microsoft-MIEngine-Pid-0fetw0nt.fyf' '--dbgExe=E:\MingGW\bin\gdb.exe' '--interpreter=mi'
请输入一个字符
h
H
PS E:\Administrator\Documents\Visual Studio 2019>
========================================================================================
我的目的是当输入两个以上的字符时,提示非法输入,if-else,for试了一个遍达不到目的,应该怎么弄才能行?大小写转换和其他字符输出都没问题.
int main(){
char c=getchar();
int flg=0;
if (getchar()!='\n')
flg=1;
if (c<0 || c>127)
flg=1; //在中文环境下,这一句是不需要的
if (flg){
printf("请输入合法字符");
return;
}
if (isalpha(c)) c^=32;
printf("%c",c);
}
|