如何用C语言编写程序解决问题?

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

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

基于Monster 组和GPT的调写:

img

#include <iostream>
using namespace std;

int main() {
    string input_str;
    cout << "请输入一个字符串: ";
    getline(cin, input_str);

    int char_count = 0;
    for (char& c : input_str) {
        if (isupper(c)) { // 如果该字符为大写字母,则将其转换为对应的小写字母;
            c = tolower(c);
        } else if (islower(c)) { // 如果该字符为小写字母,则将其转换为对应的大写字母;
            c = toupper(c);
        } else if (isdigit(c)) { // 如果该字符为数字,则将其转换为井号;
            c = '#';
        } else { // 如果该字符为其它字符,则将其转换为加号;
            c = '+';
        }
        char_count++; // 统计字符总数
    }

    cout << "转换后的字符串为: " << input_str << endl;
    cout << "您共输入了" << char_count << "个字符!" << endl;

    return 0;
}



#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作为字符串的长度
}
不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^