迪迦


私信TA

用户名:dotcpp0776032

访问量:599

签 名:

等  级
排  名 7059
经  验 1326
参赛次数 0
文章发表 25
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

方法一:使用c语言头文件ctype.h库里的tolower函数把字符串大写转换成小写


程序结构:

自定义三个函数,一个输入字符串,一个处理字符串,一个输出处理之后的字符串,最后再主函数中调用这三个函数


参考代码:

#include <stdio.h>
#include <string.h>
#include <ctype.h>

// 函数声明
void inputString(char *str, int size);
void processString(char *str, int size);
void outputString(char *str, int size);

int main()
{
    char str[100];          // 假设字符串的最大长度为100
    int size = sizeof(str); // 传递字符串的大小给其他函数
    // 输入字符串
    inputString(str, size);
    // 处理字符串
    processString(str, size);
    // 输出处理后的字符串
    outputString(str, size);
    return 0;
}

// 输入字符串的函数
void inputString(char *str, int size)
{
    printf("请输入一个字符串: ");
    fgets(str, size, stdin);
    // 去除换行符
    str[strcspn(str, "\n")] = '\0';
    /**
     * 函数原型:int strcspn(char* str,char* charset)
     * 功能:返回str中第一个和charset字符集中元素匹配的元素的位置。如果没有匹配到,就会返回str字符串的长度。
     */
}

// 处理字符串的函数
void processString(char *str, int size)
{
    // 将字符串中的所有字符转换为大写
    for (int i = 0; str[i]; i++) // 字符串是以空字符'\0'作为结尾的标识符,所以循环条件是str[i]不为空字符
    {
        str[i] = tolower(str[i]); // toupper函数包含在ctype.h头文件中,用于将字符转换为小写
    }
}

// 输出字符串的函数
void outputString(char *str, int size)
{
    printf("处理后的字符串是: %s\n", str);
}



方法二:自行设计代码实现大小写转换


解题思路:

由于大写字母与小写字母对应的ASCII码值相差32,所以可以把大写字母加上32转换成小写字母


程序结构:

自定义三个函数,一个输入字符串,一个处理字符串,一个输出处理之后的字符串,最后再主函数中调用这三个函数


参考代码:

#include <stdio.h>
#include <string.h>

void fun_input(char *str)
{
    scanf("%[^\n]", str); // 除了回车键全部输入
}

void fun_convert(char *str)
{
    for (int i = 0; i < strlen(str); i++)
    {
        if (str[i] >= 'A' && str[i] <= 'Z')
        {
            str[i] += 32;
        }
    }
}

void fun_printf(char *str)
{
    printf("%s", str);
}

int main()
{
    char str[100];
    fun_input(str);   // 调用fun_input函数获取用户输入的字符串
    fun_convert(str); // 调用fun_convert函数将字符串中的大写字母转换为小写字母
    fun_printf(str);  // 调用fun_printf函数并传递输入的字符串作为参数
    return 0;
}


 

0.0分

0 人评分

  评论区

  • «
  • »