一个非常简单的程序。我只想把大写字母'A'变成小写字母'a',但输出却给了我大写字母'A'。
#include <stdio.h>
int main(void) {
putchar(lower('A'));
}
lower(a)
int a;
{
if ((a >= 65) && (a >= 90))
a = a + 32;
return a;
}
一个非常简单的程序。我只想把大写字母'A'变成小写字母'a',但输出却给了我大写字母'A'。
#include <stdio.h>
int main(void) {
putchar(lower('A'));
}
lower(a)
int a;
{
if ((a >= 65) && (a >= 90))
a = a + 32;
return a;
}
你在第二部分的 if
条件中出现了错误。应该是 a <= 90
。
另外,FYI,C 库函数 tolower
已经可以实现这个功能:
#include <ctype.h>
#include <stdio.h>
int main() {
putchar(tolower('A'));
}
tolower
函数的结果取决于所使用的区域设置。如果你只需要 ASCII 字符集的语义,最好使用 return (c <= 'Z' && c >= 'A') ? c + 32 : c
。请注意不要改变原意。 - Craig Barnes我相信你想要的是小于等于90。
lower(a)
int a;
{
if ((a >= 65) && (a <= 90))
a = a + 32;
return a;
}
lower(a) int a;
是一种非常古老的函数声明风格。你应该避免使用它,而是使用标准的 int lower(int a)
。 - Spikatrix在ASCII码中,大写字母和小写字母之间相差0x20,所以这是另一种方法。
int lower(int a)
{
if ((a >= 0x41) && (a <= 0x5A))
a |= 0x20;
return a;
}
确保正确的一种方法是使用字符而不是ASCII码。
if ((a >= 65) && (a <= 90))
您想要的是将一个大写字母转换为小写字母。更好的方法是使用类似于if (a >= 'A' && a <= 'Z')
的代码。您不必记住所有ASCII码 :)
#include<stdio.h>
int main(){
char c;
printf("Enter a character in uppercase\n");
scanf("%c",&c);
c|=' '; // perform or operation on c and ' '
printf("The lower case of %c is \n",c);
c&='_'; // perform 'and' operation with '_' to get upper case letter.
printf("Back to upper case %c\n",c);
return 0;
}
int lower(int a)
{
return a | ' ';
}
如果条件不正确。还需要返回lower的类型。
#include <stdio.h>
int lower(int a)
{
if ((a >= 65) && (a <= 90))
a = a + 32;
return a;
}
int _tmain(int argc, _TCHAR* argv[])
{
putchar(lower('A'));
return 0;
}
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
void main(){
char a[10];
clrscr();
gets(a);
int i,length=0;
for(i=0;a[i]!='\0';i++)
length+=1;
for(i=0;i<length;i++){
a[i]=a[i]^32;
}
printf("%s",&a);
getch();
}
#include <stdio.h>
#include <string.h>
int main()
{
char string[] = "Strlwr in C";
printf("%s\n",strlwr(string));
return 0;
}
使用 strlwr 函数将字符串转换为小写
strlwr
是非标准的。如果您希望您的代码具有可移植性,请不要使用它。 - Spikatrix#include<stdio.h>
void main()
{
char a;
clrscr();
printf("enter a character:");
scanf("%c",&a);
if(a>=65&&a<=90)
printf("%c",a+32);
else
printf("type a capital letter");
getch();
}