在C语言中,利用tolower和toupper两个函数实现英文字母的大小写之间的转换
范例1:将s字符串内的小写字母转换成大写字母
1
2
3
4
5
6
7
8
9
10
11
|
#include <ctype.h>
int main()
{
char s[] = "aBcDeFgH" ;
int i;
printf ( "before toupper() : %s\n" , s);
for (i = 0; i < sizeof (s); i++)
s[i] = toupper (s[i]);
printf ( "after toupper() : %s\n" , s);
return 0;
}
|
范例2:将s字符串内的大写字母转换成小写字母
1
2
3
4
5
6
7
8
9
10
11
|
#include <ctype.h>
int main()
{
char s[] = "aBcDeFgH" ;
int i;
printf ( "before tolower() : %s\n" , s);
for (i = 0; i < sizeof (s); i++)
s[i] = tolower (s[i]);
printf ( "after tolower() : %s\n" , s);
return 0;
}
|
下面继续为大家分享一个 c语言字符串的大小写字母转化函数
问题描述:
编写一个函数my_strlwr实现将一个字符串中的大写字母转化为小写字母,小写字母不改变,并将其输出。
程序分析:
大写字母转化为小写字母,根据其ASCII码值的关系,加上32就可以得到。编写函数时,将其返回值设为该字符串空间的首地址,这样,通过函数的调用后,就可以通过其首地址输出整个字符串。
代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
#include< stdio.h >
#include< assert.h >
char * my_strlwr(char * str) //定义一个my_strlwr函数
{
assert(str); //str的非空性
char *ret = str; //定义一个ret保存最初的str
while(*str != '\0') //判断字符串是否结束
{
if((*str >= 'A')&&(*str <= 'Z'))//判断当前啊字符是否是 大写字母
{
*str = *str +32; //将其转化为小写字母
str++;
}
else
str++;
}
return ret; //返回该字符串数组的首地址
}
int main()
{
char str1[] = {"ABCDCFbbbdgeJhssW"};
printf("%s\n",my_strlwr(str1)); //调用该函数,并且输出新的字符串
return 0;
}
|
ps:推荐一款在线英文大小写转换工具:https://tool.zzvips.com/t/daxiaoxie/