#include<stdio.h>
#include<string.h>
void re_sort1(char *s,int len);
void re_sort2(char *s);
int main()
{
char str[1024] = {0};
printf("please input a sentence:\n");
gets(str);
re_sort1(str,strlen(str));
re_sort2(str);
printf("%s\n",str);
return 0;
}
void re_sort1(char *s,int len) //将整个句子的字符倒置
{
int i = 0;
char temp = 0;
for(i = 0; i < len / 2; i++)
{
temp = s[i];
s[i] = s[len - i - 1];
s[len - i - 1] = temp;
}
}
void re_sort2(char *s) //将每个单词再倒置,恢复正常
{
int start = 0; //记录单词开始位置
int len = 0;
int i = 0;
for(i = 0; i <= strlen(s); i++)
{
if(s[i] != ' ' && s[i] != '\0')
{
len++; //记录单词长度
}
else
{
re_sort1(s + start,len);
start = start + len + 1;
len = 0;
}
}
}
[C]将句子中的单词位置倒置而不改变单词内部结构
最新推荐文章于 2023-02-16 21:21:40 发布