重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
1 lower是指lower case,即小写的意思,与 upper case(大写)相对
公司专注于为企业提供网站制作、成都网站建设、微信公众号开发、商城开发,微信小程序开发,软件按需定制开发等一站式互联网企业服务。凭借多年丰富的经验,我们会仔细了解各客户的需求而做出多方面的分析、设计、整合,为客户设计出具风格及创意性的商业解决方案,创新互联更提供一系列网站制作和网站推广的服务。
2 扩展
在ctype.h中包含了很多跟字母的小写相关的函数,常见有islower、tolower等。其中islower是判断一个字符是否为小写;tolower是将一个字符转换为小写
有三种方式可以解决c语言大小写字母的转换
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
这是个C语言代码,当然C++也可以这样写的。
#includestdio.h
void stringLower(char *);
int main(){
char str[] = "123AAbbCCdd123";
stringLower(str);
printf("%s\n",str);
}
void stringLower(char *s){
int i;
for(i = 0; s[i] != '\0'; i++){
if(s[i] = 'A' s[i] = 'Z') //判断是否在大写字母范围内
s[i] = s[i] + 32;//将大写字母变为小写字母
}
}
这个是结果
望采纳,谢谢。
用ctype.h中的函数tolower和toupper。前者以大写的字符作为参数,返回相应的小写字符;后者以小写的字符作为参数,返回相应的大写字符。
#include ctype.h
#include stdio.h
int main()
{
char c = 'A';
printf("%c", tolower(c)); //a
c = 'b';
printf("%c", toupper(c)); //B
return 0;
}
如果没有相应的大小写,函数会返回字符本身。
#include ctype.h
#include stdio.h
int main()
{
char c = '0';
printf("%c", tolower(c)); //0
printf("%c", toupper(c)); //0
return 0;
}