【C语⾔】创建⼀个函数,利⽤该函数将字符串中的⼩写字母转换为⼤写字母
原理:
这类题⽬主要通过ASCII(美国信息交换标准代码)码差值实现,A对应ASCII码⼗进制数字是65,a对应ASCII码⼗进制数字是97,即⼤⼩写字母之间ASCII码差值为32,想要将⼤写字母转换为⼩写字母可以将该字符ASCII码值+32,同理⼩写字母转换成⼤写字母只需将该字符ASCII码值-32
代码1:
#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[666];
printf("请输⼊⼀段字母:\n");
scanf("%s",&str1);//输⼊字母字符串
printf("%s\n",my_strlwr(str1));  //调⽤该函数,并且输出新的字符串
printf函数中大小写d通用吗return 0;
}
代码2:
#include <stdio.h>
char* fun(char a[100])
{
int i;
for (i = 0; a[i] != '\0'; i++)
if (a[i] >= 'a' && a[i] <= 'z')
a[i] -= 32;
return a;
}
int main()
{
char a[100];
printf("请输⼊⼀段字母:\n");
gets_s(a);
printf("结果为:%s",fun(a));
return 0;
}