输入一串字符串,要求逆序排序后与原字符串连接

#include <stdio.h>
#include <string.h>

void fun (char *s, char *t)
{ int i, sl;
sl = strlen(s);
for( i=0; i<=sl; i++)
t[i] = s[i];
for (i=0; i<sl; i++)
t[i] = s[sl-i-1];
t[sl] = '\0';
}

void main()
{ char s[100], t[100];
printf("\nPlease enter string s:"); scanf("%s", s);
fun(s, t);
printf("The result is: %s\n", t);
}

可以直接用C标准库提供的函数strcpy、strcrev和strcat,这样会比较简洁一点。

img

#include <stdio.h>
#include <string.h>
void main()
{
    char s[100], t[100], result[200];
    // 输入
    printf("\nPlease enter string s:"); scanf("%s", s);
    // 把s拷贝给t
    strcpy(t, s);
    // 把s拷贝给result
    strcpy(result, s);
    // 把t反转(逆序排序)
    strrev(t);
    // 把反转结果与原字符串连接
    strcat(result, t);
    // 输出
    printf("The result is: %s\n", result);
}