有三种方式可以解决c语言大小写字母的转换
创新互联建站于2013年成立,是专业互联网技术服务公司,拥有项目成都做网站、成都网站建设、成都外贸网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元崇礼做网站,已为上家服务,为崇礼各地企业和个人服务,联系电话:18982081108
1.使用C语言提供的函数:toupper(),tolower()
使用这两个函数需要引入头文件:#includectype.h
示例代码:
输入如下
2.自己编写转换函数:
因为大小写之间的ASCII码值的差值是固定的,因此可以使用‘a’-‘A’来获取差值。
实例代码:
输出如下:
3.异或0x20来实现转换:
0x20是16进制,表示为2进制是00100000,这样可能还是不明显,转换为10进制,其实就是32
对了,还是利用32.
异或:相同为0,不同为1. 也就是说,任何数字与0异或都是它本身。
所以将其他位都设为0,把第6位(从左向右)设置为1,也就是0x20
如果第6位是1,则异或结果为0.
如果第6位是0,则异或结果为1.
实现了加减32的操作。
示例代码:
输入如下:
希望可以帮到你。。。
如果是日常使用, 那么可以考虑直接调用ctype.h里定义的函数
int tolower(int c);
如果是想自己实现, 那么要先判断c是否确实是大写字母('A'=c 'Z'=c), 然后再转换c += 'a'-'A', 注意这里'a'-'A'其实等于32, 而不是26
1、输入字符,可以使用getchar或者scanf的%c格式。
2、在ASCII码表中,对应的小写字母比大写字母大32,所以输出增加32之后的值即可。
3、输出可以使用putchar或者printf。
4、参考代码:
#include stdio.h
int main()
{
char c;
c=getchar();//输入。
if(c='A' c='Z')//是大写字母
putchar(c+32);//输出小写。
return 0;
}
如果限定输入为合法大写,不需要判断合法性,那么代码可以简化为:
#include stdio.h
int main()
{
putchar(getchar()+32);//输入,计算,输出,一句即可。
return 0;
}
大小转换,用ascii码的差值进行运算。
函数实现两个主要功能:
一、识别字符串中大写字母。
二、将大写转小写,累计个数并返回。
下面是代码:
#include stdio.h
int C2LC(char str[]);
int main()
{
int n;
char str[100];
scanf("%s",str);
n=C2LC(str);
printf("大写转小写后为:\n%s\n修改的个数为:%d\n",str,n);
return 0;
}
int C2LC(char str[])
{
int n=0;
char *p=str;
while(*p!=0)
{
if(*p='A' *p='Z') *p=*p+32,n++;
p++;
}
return n;
}