#include<stdio.h>
#include<malloc.h>
#include<string.h>
/*
* 翻转
*/
char *mystrrev(char *arr)
{
if (!arr)
{
return NULL;
}
char *temp = arr;
char t;
int leng = strlen(arr) + 1;
int l = (int)(leng / 2);
int i = 0;
while (l--)
{
t = arr[i];
arr[i] = arr[leng - 2];
arr[leng - 2] = t;
i++;
leng--;
}
return temp;
}
/*
*截取单个词汇
*/
char *myrev(char *string)
{
if (!string)
{
return NULL;
}
char *temp1 = (char *)malloc(strlen(string) + 1);
char *temp2 = (char *)malloc(strlen(string) + 1);
char *temp3 = NULL;
*temp2 = '/0';
int i = 0;
for (int j=strlen(string); j>=0; --j)
{
temp1[i] = *string;
if (temp1[i] == ' ' || *(string) == '/0')
{
if (!temp3)
{
free(temp3);
temp3 = NULL;
}
temp3 = (char *)malloc(i);
temp1[i] = '/0';
i = 0;
strcpy(temp3, temp1);
strcat(temp2, mystrrev(temp3));
strcat(temp2, " ");
i = -1;
}
i++;
string++;
}
if (!temp1)
{
free(temp1);
temp1 = NULL;
}
if (!temp3)
{
free(temp3);
temp3 = NULL;
}
return temp2;
}
int main(int argc, char *argv[])
{
char *src = "Today is a good day";
char *s = "abcd_*__abcd";
char *temp = myrev(src);
char *temp1 = myrev(s);
printf("%s/n", temp);
printf("%s/n", temp1);
return 0;
}
结果:
yadoT si a doog yad
dcba__*_dcba