carloscn / structstudy

Leetcode daily trainning by using C/C++/RUST programming.
4 stars 1 forks source link

leetcode709:转换成小写字母(to_lower_case_709) #124

Open carloscn opened 1 year ago

carloscn commented 1 year ago

问题描述

给你一个字符串 s ,将该字符串中的大写字母转换成相同的小写字母,返回新的字符串。

示例 1:

输入:s = "Hello" 输出:"hello" 示例 2:

输入:s = "here" 输出:"here" 示例 3:

输入:s = "LOVELY" 输出:"lovely"  

提示:

1 <= s.length <= 100 s 由 ASCII 字符集中的可打印字符组成

来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/to-lower-case

carloscn commented 1 year ago

问题分析

C语言版本

static int32_t to_lower(char *str)
{
    int32_t ret = 0;
    size_t len = 0;

    UTILS_CHECK_PTR(str);
    UTILS_CHECK_LEN(len = strlen(str));

    do  {
        *str = utils_conv_lowercase(*str);
        str ++;
    } while (*str != '\0');

finish:
    return ret;
}

Rust版本

fn to_lower(instr:&str) -> String
{
    let mut out:String = String::new();
    let mut e:u8;

    for c in instr.as_bytes() {
        e = utils::str::conv_lowercase(*c as u8);
        out.push(e as char);
    }
    // as option:
    // out.push_str(instr);
    // out = instr.to_lowercase();

    return out;
}
carloscn commented 1 year ago

code:

https://github.com/carloscn/structstudy/blob/master/c_programming/str/n39_to_lower_case_709.c https://github.com/carloscn/structstudy/blob/master/rust_programming/str/src/n39_to_lower_case_709.rs

result:

image