输入n整数和字符串,从第n个字符开始把原来的字符串倒过来

输入n整数和字符串,从第n个字符开始把原来的字符串倒过来排列

输入
n 字符串
输出
重新排的字符串


输入
4 computer
输出
pmocretu

输入
5 Hamster
输出
tsmaHre


#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
void swap(char* p, char* q)
{
    char temp = *p;
    *p = *q;
    *q = temp;
}
int main()
{
    int index, len,i;
    char str[100];
    scanf("%d", &index);
    getchar();
    gets(str);
    len = strlen(str);
    for (i = 0;i<index/2;i++)
    {    
        swap(&str[i], &str[index - 1-i]);
    }
    for (i = 0;i < (len-index)/2;i++)
    {
        swap(&str[index+i], &str[len-1-i]);
    }
    puts(str);

    return 0;
}

img

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

void reverseN(char* str, int n)
{
    char tmp[n+1];
    strcpy(tmp, str);
    printf("%s\n",tmp);
    for (int i=0;i<n;i++){
        *str++ = tmp[n-1-i];
    }
}

int main()
{
    char str[100];
    int n;
    scanf("%d %s",&n, str);
    reverseN(str, n);
    printf("%s",str);
    
    return 0;
}

#include "stdio.h"//
#include "string.h"//
#include "stdlib.h"//
void main(void){
char Str[101],n;
printf("请输入一个字符串(限长100)!\nStr=");
gets(Str);
printf("请输入截取位置数!\nn=");
scanf("%d",&n);
if(n>=(char)strlen(Str)) printf("n太大,越界!\n");
else printf("截取的字符串是:%s\n",Str+n-1);
}

c++,运行没问题


int main()
{
    int n = 0;
    cin >> n;
    string s;
    cin >> s;
    string res="";
    int len = s.length();
    for (int i = n-1; i >= 0; i--) {
        res += s[i];
    }
    for (int i = n; i < len; i++) {
        res += s[i];
    }
    cout << res;
    return 0;
}

img