1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
#include<stdio.h> #include<string.h> #include<assert.h>
char* strRightReverse(char* str, int num) {
char strAfterReverse[100] = {0}; char* strReverse = str; char* strNotReverse = str; int i; int length = strlen(str);
if (num < 0 || num > strlen(str)) { printf("Illegal input!\n"); return str; }
strNotReverse += num;
for (i = 0; i < length - num; i++) strAfterReverse[i] = *strNotReverse++;
for (i = length - num; i < length; i++) { strAfterReverse[i] = *strReverse++; } strAfterReverse[length] = '\0'; strcpy(str, strAfterReverse);
return str; }
int main(void) {
char str[100]; int num = 0;
printf("Enter a string: "); scanf("%s", str); printf("Enter a number: "); scanf("%d", &num);
strRightReverse(str, num);
printf("output: %s\n", str);
return 0; }
|