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

C语言字符前移3位:如何实现rot_all函数处理字符串数组

完善rot_all函数实现

要实现rot_all函数,只需遍历字符串数组的每一个元素,对每个字符串调用已实现的strrot函数完成字符偏移即可。以下是补全后的完整代码:

char rot3(char c) // Function shifts a letter by three spaces (eg 'a' -> 'd')
{
    if (c >= 'A' && c <= 'Z') return c += 3;
    if (c >= 'a' && c <= 'z') return c += 3;
    return c;
}

void strrot(char *str)
{
    int d = strlen(str);
    for (int i = 0; i < d; i++)
    {
        str[i] = rot3(str[i]);
    }
}

void rot_all(char *s[], int n)
{
    // 遍历数组中的每个字符串,逐个调用strrot处理
    for (int i = 0; i < n; i++)
    {
        strrot(s[i]);
    }
}

// 测试rot_all的示例main函数
int main()
{
    // 定义可修改的字符数组组成的字符串数组
    char str1[] = "Hello";
    char str2[] = "World";
    char str3[] = "123Xyz";
    char *arr[] = {str1, str2, str3};
    int arr_len = sizeof(arr) / sizeof(arr[0]);

    rot_all(arr, arr_len);

    // 输出处理后的结果
    for (int i = 0; i < arr_len; i++)
    {
        printf("%s\n", arr[i]);
    }

    return 0;
}

说明

  • rot_all的核心逻辑就是循环遍历字符串数组,把每个字符串交给strrot处理,复用已有的字符偏移逻辑
  • 测试用的main函数中使用了可修改的字符数组,避免直接修改字符串字面量导致的未定义行为

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 19:31:02