#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void reverse(char* str, int n);
int main()
{
char str[100] = {0};
char* p;
int n;
gets(str);
p = str;
n = strlen(str);
reverse(p, n);
printf("%s", str);
return 0;
}
void reverse(char* str, int n)
{
//函数求出str的逆转数并存入str。
char newstr[100];
char* point;
char* p;
int i = 0;
int flag = 1;//若是1则加‘\0’,否则不加‘\0’
point = &str[n - 1];
p = &str[n - 1];
if (*point == '0')
{
flag = 0;
strcpy(newstr,str);
while (1)
{
if (*point != '0')
{
break;
}
point--;
n--;
}
p = point;
}
if (str[0] == '-')
{
newstr[0] = '-';
i = 1;
while (n > 1)
{
newstr[i++] = *p;
p--;
n--;
}
if (flag)
newstr[i] = '\0';
}
else
{
while (n > 0)
{
newstr[i++] = *p;
p--;
n--;
}
if(flag)
newstr[i] = '\0';
}
strcpy(str,newstr);
}
ZZULIOJ1167: 逆转数(指针专题)
最新推荐文章于 2023-01-04 21:10:28 发布