GCJUSTUP 2023-05-22 18:05 采纳率: 100%
浏览 62
已结题

求写下这两个程序的代码

这两个程序的代码,就把两个代码都写完就可以了 有会的帮帮忙吧soxjenjzjdekksjdnekwksdkew

img

  • 写回答

1条回答 默认 最新

  • 唐宋404 2023-05-22 18:22
    关注

    第一题

    #include <iostream>
    #include <cstring>
    
    void movestr(char* str, int n) {
        int len = strlen(str);
        char* temp = new char[len + 1];
    
        // 保存前n个字符
        strncpy(temp, str, n);
        temp[n] = '\0';
    
        // 将后N-n个字符移到前面
        memmove(str, str + n, len - n);
    
        // 将保存的前n个字符移到后面
        strcpy(str + len - n, temp);
    
        delete[] temp;
    }
    
    int main() {
        char str[100];
        int n;
    
        std::cout << "请输入字符串: ";
        std::cin >> str;
    
        std::cout << "请输入数值: ";
        std::cin >> n;
    
        movestr(str, n);
    
        std::cout << "前后交换后的字符串: " << str << std::endl;
    
        return 0;
    }
    

    第二题

    #include <iostream>
    #include <cstring>
    
    bool EqualReverse(const char* str) {
        int len = strlen(str);
        const char* start = str;
        const char* end = str + len - 1;
    
        while (start < end) {
            if (*start != *end) {
                return false;
            }
            start++;
            end--;
        }
    
        return true;
    }
    
    int main() {
        char str[100];
    
        std::cout << "请输入字符串: ";
        std::cin >> str;
    
        if (EqualReverse(str)) {
            std::cout << "该字符串为回文串" << std::endl;
        } else {
            std::cout << "该字符串不是回文串" << std::endl;
        }
    
        return 0;
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 5月24日
  • 已采纳回答 5月22日
  • 创建了问题 5月22日