电工电子技术实验 2022-06-13 10:13 采纳率: 97.4%
浏览 77
已结题

vc++数组与指针混合应用问题

1.使用下标法将一个字符串拼接到另一个字符串后面,比如“abcfe”后面拼接“12345”
2.使用下标法将字符串逆序排列后输出,比如“abcd123”排列为“321dcba”后输出
3.使用指针变量将一个字符串拼接到另一个字符串的后面,比如“abcfe”后面拼接“12345”,称为“abcfe12345”
4.使用指针变量实现字符串的逆序排列后输出,比如将字符串“abcd123”逆序排列为“321dcba”

  • 写回答

4条回答 默认 最新

  • 关注

    1.下标法拼接

    img

    #include <iostream>
    using namespace std;
    #define MAXLEN 100
    int main()
    {
        char src1[MAXLEN], src2[MAXLEN];
        cin >> src1 >> src2; //读取两个字符串
        //下标法拼接
        int i = 0, j = 0;
        //将下标移动到src1最后
        while (src1[i] != '\0')
            i++;
        //将src2拼接到src1
        while (src2[j] != '\0')
        {
            src1[i] = src2[j];
            i++;
            j++;
        }
        src1[i] = '\0'; //结尾
        cout << src1 << endl;
        return 0;
    }
    
    
    1. 下标法逆序

    img

    #include <iostream>
    #include <cstring>
    using namespace std;
    #define MAXLEN 100
    int main()
    {
        char src1[MAXLEN], tmp;
        cin >> src1; //读取两个字符串
        //下标法
        int i = 0, j = strlen(src1)-1;
        
        //逆序
        while (i < j)
        {
            tmp = src1[i];
            src1[i] = src1[j];
            src1[j] = tmp;
            i++;
            j--;
        }
        
        cout << src1 << endl;
        return 0;
    }
    
    

    3.指针法拼接

    #include <iostream>
    using namespace std;
    #define MAXLEN 100
    int main()
    {
        char src1[MAXLEN], src2[MAXLEN];
        char* p1, * p2;
        p1 = src1;
        p2 = src2;
        cin >> src1 >> src2; //读取两个字符串
        //指针法拼接
       
       
        while (*p1 != '\0')
            p1++;
        //将src2拼接到src1
        while (*p2 != '\0')
        {
            *p1 = *p2;
            p1++;
            p2++;
        }
        *p1 = '\0'; //结尾
        p1 = src1; //重回数组头
        cout << p1 << endl;
        return 0;
    }
    
    
    

    4.指针法逆序

    #include <iostream>
    #include <cstring>
    using namespace std;
    #define MAXLEN 100
    int main()
    {
        char src1[MAXLEN], tmp;
        char* p = src1;
        char* pend;
        cin >> src1; //读取字符串
        
        pend = p + strlen(src1);
        pend--;
        //逆序
        while (p < pend)
        {
            tmp = *p;
            *p = *pend;
            *pend = tmp;
            p++;
            pend--;
        }
    
        p = src1;//重回数组头
        cout << p << endl;
        return 0;
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 6月14日
  • 已采纳回答 6月14日
  • 创建了问题 6月13日

悬赏问题

  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀