You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CMake中是否有字符串反转函数?无内置函数时该如何处理?

CMake字符串反转实现方案

CMake的string命令集合中没有内置的字符串反转函数,需要通过自定义逻辑实现。

自定义反转函数实现

可以编写一个CMake函数,通过从后往前遍历字符串的每个字符完成反转:

# 定义字符串反转函数:reverse_string(输出变量名 输入字符串)
function(reverse_string output input)
    # 获取输入字符串的长度
    string(LENGTH "${input}" str_length)
    set(reversed_result "")
    
    # 从最后一个字符开始遍历,逐个拼接到结果中
    while(str_length GREATER 0)
        math(EXPR str_length "${str_length} - 1")
        # 截取当前位置的单个字符
        string(SUBSTRING "${input}" ${str_length} 1 current_char)
        # 将字符追加到结果字符串
        string(APPEND reversed_result "${current_char}")
    endwhile()
    
    # 将结果传递到父作用域
    set(${output} "${reversed_result}" PARENT_SCOPE)
endfunction()

# 使用示例
set(original_str "abcd")
reverse_string(reversed_str "${original_str}")
# 打印反转后的结果:dcba
message(STATUS "反转结果: ${reversed_str}")

逻辑说明

  1. 用string(LENGTH)获取输入字符串的总长度;
  2. 通过while循环从最后一个字符索引(长度-1)开始,逐步向前遍历;
  3. 每次用string(SUBSTRING)截取单个字符,并用string(APPEND)拼接到结果字符串中;
  4. 最后通过PARENT_SCOPE将反转后的字符串传递到函数外部的变量中。

内容的提问来源于stack exchange,提问作者Zhenya4880

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 09:12:32