您的位置:首页 > 其它

[C]将句子中的单词位置倒置而不改变单词内部结构

2017-11-29 23:19 295 查看
#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;
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐