[英]C Program to check if character is a lower case letter and convert to upper case letter and vice versa
C 程序檢查字符是否為小寫字母並轉換為大寫字母,反之亦然
為什么這行得通?
(如果我使用 if 語句兩次,但如果我使用 if-else 語句,它似乎可以工作)
#include <stdio.h>
#include <stdlib.h>
int main()
{
char ch , k ;
printf("enter an alphabet : ");
scanf("%c",&ch);
if (ch>=97 && ch<=122)
{
printf(" \n small letter");
k=ch-32;
printf(" \n after conversion %c",k);
}
if (ch>=65 && ch<=90)
{
printf(" \n capital letter");
k=ch+32;
printf(" \n after conversion %c",k);
}
return 0;
}
但這會顯示一個隨機值。
#include <stdio.h>
#include <stdlib.h>
int main()
{
char ch , k ;
printf("enter an alphabet : ");
scanf("%c",&ch);
if (ch>=97 && ch<=122)
{
printf(" \n small letter");
k=ch-32;
printf(" \n after conversion %c",k);
}
else (ch>=65 && ch<=90);
{
printf(" \n capital letter");
k=ch+32;
printf(" \n after conversion %c",k);
}
return 0;
}
if (ch>=97 && ch<=122)
它只適用於 ASCII 碼。 它不是便攜式的。 C 具有此任務的特殊功能:
#include <ctype.h>
int swapCase(int ch)
{
return isupper((unsigned char)ch) ? tolower((unsigned char)ch) : toupper((unsigned char)ch);
/*
//or
if(isupper((unsigned char)ch))
ch = tolower((unsigned char)ch);
else
ch = toupper((unsigned char)ch);
return ch;
*/
}
和一些助手 function 和主程序來演示它是如何工作的:
char *strSwapCase(char *str)
{
char *wrk = str;
if(str)
{
while(*str)
{
*str = swapCase(*str);
str++;
}
}
return wrk;
}
int main (void){
char x[] = "asDrgdfDFGHFDSdfgf3546&&&434fdgffyhfghfdfsdgsfdDFDGdfgdf";
printf("before: %s\n", x);
printf("after : %s", strSwapCase(x));
}
您編寫的第二個代碼無法編譯。 如果您打算使用“else if”,則應編寫為:
else if (ch>=65 && ch<=90)
更正此行會使您的代碼編譯並按預期運行。 就目前而言,我不確定您的代碼是如何運行並為您提供“隨機值”的,但是您可能正在使用一些不尋常的編譯器,它在else
之后丟棄了該語句?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.