c++字符串和指针的问题,请大家指导一下🙏

将字符串str1="Birthday!”连接到字符串str2=
“Happy〞的后面。注意利用字符指针完成程序的编写


#include<iostream>
using namespace std;
void stringConnection(char* str1, char* str2)
{
    int i = 0;
    int k = 0;
    while (str1[i] != '\0')
    {
        i++;
    }
    while (str2[k] != '\0')
    {
        k++;
    }
    k = 0;
    while (str2[k] != '\0')
    {
        str1[i] = str2[k];
        i++;
        k++;
    }
    str1[i] = '\0';
}
int main()
{
    char str1[20] = "Birthday!";
    char str2[20] = "Happy";
    stringConnection(str2, str1);
    cout << str2;
}

题目要求用指针,就不要用数组下标:

#include<iostream>
using namespace std;

void strcat(char* str1, char* str2)
{
    while (*++str1);
    
    while (*str2)
        *str1++ = *str2++;

    *str1 = '\0';
}

int main()
{
    char str1[20] = "Birthday!";
    char str2[20] = "Happy";
    strcat(str2, str1);
    cout << str2 << endl;
    
    return 0;
}