鱼C论坛

 找回密码
 立即注册
查看: 2144|回复: 4

[已解决]字母大小写转换和其他字符原样输出

[复制链接]
发表于 2019-5-6 17:05:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. /*从键盘输入字符,如果是小写字母则输出大写,如果是大写字符则输出小写,其他字符原样输出*/
  2. #include<stdio.h>
  3. #include<conio.h>
  4. void main()
  5. {
  6.     char ch1;
  7.     int i, j;
  8.     printf("请输入一个字符\n");
  9.     ch1 = getchar();
  10.     for (j = 0, i = 0; i <= 127; i++)
  11.     {
  12.         ch1 % i == 1;//判断ch1是不是ASC表中的字符
  13.         j++;//如果是则j+1
  14.     }
  15.     switch (!j)
  16.     {
  17.     case 1:
  18.         printf("请输入合法字符");//输入两个以上的字符或者两位以上的数字都是非法
  19.         break;
  20.     case 0:
  21.         if (ch1 >= 'A' && ch1 <= 'Z')
  22.         {
  23.             printf("%c", ch1 + 32);
  24.         }
  25.         if (ch1 >= 'a' && ch1 <= 'z')
  26.         {
  27.             printf("%c", ch1 - 32);
  28.         }
  29.         else
  30.         {
  31.             printf("%c", ch1);
  32.         }
  33.         break;
  34.     default:
  35.         break;
  36.     }

  37. }
复制代码

-------------------------------------------------------------------------------------------------------------------------------                                               > & '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试了一个遍达不到目的,应该怎么弄才能行?大小写转换和其他字符输出都没问题.
最佳答案
2019-5-6 19:21:36
  1. int main(){
  2.         char c=getchar();
  3.         int flg=0;
  4.         if (getchar()!='\n')
  5.                 flg=1;
  6.         if (c<0 || c>127)  
  7.                 flg=1;  //在中文环境下,这一句是不需要的
  8.         if (flg){
  9.                 printf("请输入合法字符");
  10.                 return;
  11.         }
  12.         if (isalpha(c)) c^=32;
  13.         printf("%c",c);
  14. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-5-6 18:16:48 | 显示全部楼层
你写的啥啊,判断连if都没有判断个毛线啊
  1. #include <stdio.h>

  2. char* swapcase(char* sz){
  3.         int i;
  4.         for (i=0;sz[i]!='\0';++i){
  5.                 if (isalpha(sz[i])){
  6.                         sz[i]^=32;
  7.                 }
  8.         }
  9.         return sz;
  10. }

  11. int main(){
  12.         char sz[256];
  13.         printf("请输入一个字符串:");
  14.         scanf("%s",sz);
  15.         swapcase(sz);
  16.         printf("%s\n",sz);
  17.        
  18. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-5-6 19:09:05 | 显示全部楼层
本帖最后由 bin554385863 于 2019-5-6 19:10 编辑
Croper 发表于 2019-5-6 18:16
你写的啥啊,判断连if都没有判断个毛线啊


.........
大哥
我才学到循环语句这一块.数组都还没到,
指针更别说了

我的意思是,只能输入单个字符,输入多个字符就用printf()提示非法
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-6 19:21:36 | 显示全部楼层    本楼为最佳答案   
  1. int main(){
  2.         char c=getchar();
  3.         int flg=0;
  4.         if (getchar()!='\n')
  5.                 flg=1;
  6.         if (c<0 || c>127)  
  7.                 flg=1;  //在中文环境下,这一句是不需要的
  8.         if (flg){
  9.                 printf("请输入合法字符");
  10.                 return;
  11.         }
  12.         if (isalpha(c)) c^=32;
  13.         printf("%c",c);
  14. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-5-6 19:24:34 From FishC Mobile | 显示全部楼层
多谢
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-4 06:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表