C ++如何将char附加到以前反转的char?

时间:2015-10-24 13:45:13

标签: c++

你好我需要make / append / concat函数。如何将反转的字符添加到我的“主要字符”中?注释示例输出。

这是我的func代码和main:

void app(char *str2,const char *str1){
    const char *temp=str1;
    char* temp_snd=str2;
    const char*temp_trd=str1;
    char *temp_fth;
    while(*temp_trd){
        temp_trd++;
    }
    while(temp_trd!=str1){
        temp_trd--;
        *temp_fth=*temp_trd;
        temp_fth++;
    }
    *temp_fth='\0';
    while(*temp&&*temp_snd){
        temp++;
        temp_snd++;
    }
    while(temp!=str1&&temp_snd!=temp){
        temp--;
        temp_snd++;
        *temp_snd=*temp;
    }
    strcat(temp_snd, temp_fth);
}

这是我的主要内容:

int main(int argc, const char * argv[]) {

    const char *str1 = "seY ";
    char str2[20] = "Hello";
    cout << str2 << endl;    // Hello
    app(str2, str1);
    cout << str2 << endl;    // Hello Yes 
    app(str2, "llor ");
    cout << str2 << endl;    // Hello Yes Roll
    return 0;
}

这是我的输出:

Hello
Hello Yes
Hello  roll

我知道我的功能并非完美,但要富有同情心。请。

1 个答案:

答案 0 :(得分:1)

你可以试试这个:

void add (char x[])
{
    int n;
    cin >> n; // Length of string
    char*y=new char[n];
    cin >> y;
    reverse(y, y+strlen(y));
    strcat(x, " ");
    strcat(x, y);
}

int main()
{
    int n;
    cin >> n; // Length of base string 
    char *x=new char[n];
    cin >> x;
    add(x);
    cout << x << endl;
}