这个怎么打啊 朋友们
控制台输入一个字符串,要求保留字符串的后半段,前半段做成后半段的镜像。例如,123456,处理成654456,要用m e m m o v e 或者m e m c p y
供参考:
#include <stdio.h>
#include <string.h>
int main()
{
int n ,i;
char str[128];
scanf("%s", str);
n = strlen(str);
for (i = 0;i < n/2; i++)
memmove(str+i,str+n-1-i,1);
printf("%s",str);
return 0;
}
#include<stdio.h>
#include<string.h>
void swap(char* a, char* b)
{
char tmp = *a;
*a = *b;
*b = tmp;
}
void reverse(char* arr, int start, int end)
{
while (start < end)
{
swap(&arr[start], &arr[end]);
start++;
end--;
}
}
int main()
{
char arr[100] = { 0 };
//123456
gets(arr);
int len = strlen(arr);
if (len % 2 == 0)
{
int move = len / 2;
//拷贝后面的内容
memmove(arr,arr+move,move);
//将内容交换
reverse(arr, 0, move-1);
}
else
{
int move = len / 2;
memmove(arr, arr + move+1, move);
reverse(arr, 0, move-1);
}
printf("%s", arr);
}
这哪用的到你说的函数呢???