2301_76986952 2023-04-15 23:27 采纳率: 90%
浏览 178
已结题

如何用C语言解决该题?

编写程序,实现以下功能:

首先,提示用户输入一个字符串(按回车键确认);
然后,依次判断用户输入的每个字符,进行转换后输出。转换规则如下:
如果该字符为大写字母,则将其转换为对应的小写字母;
如果该字符为小写字母,则将其转换为对应的大写字母;
如果该字符为数字,则将其转换为井号;
如果该字符为其它字符,则将其转换为加号;
最后,在新的一行输出字符总数信息。
例如:假如用户输入:“Ab1-2”,则系统先输出:“aB#+#”,然后在新的一行输出:“您共输入了5个字符!”。

  • 写回答

11条回答 默认 最新

  • 语言-逆行者 2023-04-16 00:02
    关注

    img

    
    #include <stdio.h>
    int my_strlen(char *s); //自定义一个函数,用来计算字符串的长度
    int main()
    {
        char str[100]; //定义一个字符数组,用来存储用户输入的字符串
        int i; //定义一个循环变量
        int len; //定义一个变量,用来存储字符串的长度
        printf("请输入一个字符串(按回车键确认):\n"); //提示用户输入一个字符串
        gets(str); //使用gets函数读取用户输入的字符串,并存储在str数组中
        len = my_strlen(str); //使用自定义的函数计算字符串的长度,并赋值给len变量
        printf("转换后的结果为:\n"); //输出转换后的结果
        for (i = 0; i < len; i++) //使用for循环遍历字符串中的每个字符
        {
            if (str[i] >= 'A' && str[i] <= 'Z') //如果该字符为大写字母
            {
                str[i] = str[i] + 32; //则将其转换为对应的小写字母,即ASCII码值加32
            }
            else if (str[i] >= 'a' && str[i] <= 'z') //如果该字符为小写字母
            {
                str[i] = str[i] - 32; //则将其转换为对应的大写字母,即ASCII码值减32
            }
            else if (str[i] >= '0' && str[i] <= '9') //如果该字符为数字
            {
                str[i] = '#'; //则将其转换为井号
            }
            else //如果该字符为其它字符
            {
                str[i] = '+'; //则将其转换为加号
            }
            printf("%c", str[i]); //输出转换后的字符
        }
        printf("\n您共输入了%d个字符!\n", len); //在新的一行输出字符总数信息
        return 0;
    }
    
    int my_strlen(char *s) //自定义一个函数,用来计算字符串的长度
    {
        int count = 0; //定义一个变量,用来记录字符个数
        while (*s != '\0') //使用while循环遍历字符串,直到遇到空字符结束
        {
            count++; //每遇到一个非空字符,就将count加一
            s++; //将指针s向后移动一位,指向下一个字符
        }
        return count; //返回count作为字符串的长度
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(10条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月17日
  • 已采纳回答 4月16日
  • 修改了问题 4月15日
  • 赞助了问题酬金15元 4月15日
  • 展开全部

悬赏问题

  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 关于大棚监测的pcb板设计
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)