C语言函数:tolower()、toupper字符大小写转换函数。
int toupper( int c)
int tolower( int c)
tolower():将字母转为小写。
toupper():将字母转位大写。
返回值都是int,需要注意的是:并不是返回地址,而是一个数据。返回的数据是改变后的数据。
字符是char类型,返回int类型的解释:
因为这两个函数,是对一个字母进行大小写的转换。因此我们在使用这个函数的时候都是传入一个字符。一个字符只占1个Byte。也就是一个char类型。因此即使返回的是int有4Byte,也可以使用char类型的数据接收,因为int类型也只会把数据存在后8bit中(忽略大小端存储),char类型只会取后8bit。
实例:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <ctype.h>
int menu()//菜单
{
printf("1.小写转大写\n");
printf("2.大写转小写\n");
int k = 0;
scanf("%d", &k);
printf("------------------\n");
printf("请先输入一串字母:\n");
return k;
}
int main()
{
char arr[20] = { 0 };
int k = menu();//选择
scanf("%s", arr);//%s输入字符串
if (k == 1)//小写转大写
{
int i = 0;
while(arr[i])
{
arr[i] = toupper(arr[i]);
i++;
}
}
else if(k==2)//大写转小写
{
int i = 0;
while (arr[i])
{
arr[i] = tolower(arr[i]);
i++;
}
}
printf("%s\n", arr);
return 0;
}
创建数组,通过scanf(%s)可以输入字符串。
tolower或者toupper不会按照地址对地址所对的内容修改,而是找到地址所对应的内容,然后对内容修改,最好返回修改好的内容。
因此,我们需要手动将函数改好的内容放回到数组内部。
即:
arr[i] = toupper(arr[i]);
arr[i] = tolower(arr[i]);