字符转换,大小写转换。简单题!!!有几个库函数的使用方法

目录

题⽬描述:

先看代码,下面有解析奥!!!!

方法一(不用库函数的方法)

方法二(用库函数)


题⽬描述:

输⼊⼀个字符串,将字符串中⼤写字⺟全部转为⼩写字⺟,⼩写字⺟转成⼤写字⺟,其他字符保持不
变。注:字符串的⻓度⼩于等于30,其中字符串中包含空格

先看代码,下面有解析奥!!!!

//⽅法1:不使⽤库函数
#include <stdio.h>
int main()
{
    char buf[31] = { 0 };
 //输⼊字符串
    scanf("%[^\n]s", buf);
    int i = 0;
 //遍历字符串
    while (buf[i])
 {
 //判断当前字符是否为⼩写字⺟
    if (buf[i] >= 'a' && buf[i] <= 'z')
    buf[i] -= 32;
 //判读那当前字符是否为⼤写字⺟
    else if (buf[i] >= 'A' && buf[i] <= 'Z')
    buf[i] += 32;
    i++;
 }
    printf("%s\n", buf);
    return 0;
}
//⽅法2:使⽤库函数
#include <stdio.h>
#include <ctype.h>
int main()
{
    char buf[31] = { 0 };
 //输⼊字符串
    scanf("%[^\n]s", buf);
    int i = 0;
    while (buf[i])
 {
 //判断当前字符是否为⼩写字⺟
    if (islower(buf[i]))
    buf[i] = toupper(buf[i]);
 //判读那当前字符是否为⼤写字⺟
    else if (isupper(buf[i]))
    buf[i] = tolower(buf[i]);
    i++;
 }
    printf("%s\n", buf);
    return 0;
}

方法一(不用库函数的方法)

首先输入一个字符串,这里也可以用gets_s(vs中)函数输入,当然得包含头文件

#include<string.h>     .    这里用scanf 来输入,记得加上[ ^\n ] 是指排除 回车(换行)

记住 字符串 “ ”双引号里带的是字符串里自带 \0 在最后的位置,而‘ ’单引号中只是字符,并没有自带 \0.

然后用while循环,当然也可以使用for循环,for循环就是遍历到 出现\0 为止。

这里用while循环,表达式给的buf[ i ] 因为下面有i ++ ,随着i ++ 最终 会出现 \0. \0 也相当于0,所以就为假,跳出循环。

循环内的 判断语句则就是判断字符串中的每个字符是 大写字母还是小写字母。

记住小写 字母 在 ASCII码中 序号比 大写 字母大32

所以如果是小写就让 buf【i】 - 32.

大写就 +32,这样就完成了大小写字符交换。

//⽅法1:不使⽤库函数
#include <stdio.h>
int main()
{
    char buf[31] = { 0 };
 //输⼊字符串
    scanf("%[^\n]s", buf);
    int i = 0;
 //遍历字符串
    while (buf[i])
 {
 //判断当前字符是否为⼩写字⺟
    if (buf[i] >= 'a' && buf[i] <= 'z')
    buf[i] -= 32;
 //判读那当前字符是否为⼤写字⺟
    else if (buf[i] >= 'A' && buf[i] <= 'Z')
    buf[i] += 32;
    i++;
 }
    printf("%s\n", buf);
    return 0;
}

方法二(用库函数)

首先先了解一组库函数,头文件是#include<ctype.h>

这里用的有4个库函数。

1.islower(),这个函数是用来判断是否为小写字母,is lower 是 更低级的。所以是小写。

2.isupper(),这个则是用来判断大写字母。is upper。

3.tolower(),根据名字to lower(变成更低级),那就是将大写改为小写。

4.toupper(),同上。

了解了库函数后,下面的做法和方法一 一致。

//⽅法2:使⽤库函数
#include <stdio.h>
#include <ctype.h>
int main()
{
    char buf[31] = { 0 };
 //输⼊字符串
    scanf("%[^\n]s", buf);
    int i = 0;
    while (buf[i])
 {
 //判断当前字符是否为⼩写字⺟
    if (islower(buf[i]))
    buf[i] = toupper(buf[i]);
 //判读那当前字符是否为⼤写字⺟
    else if (isupper(buf[i]))
    buf[i] = tolower(buf[i]);
    i++;
 }
    printf("%s\n", buf);
    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值