算法:翻转句子中单词的顺序

翻转句子中单词的顺序。
题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。
句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。
例如输入“I am a student.” ,则输出“student. a am I” 。
代码思路:此题比较简单,用a[N]保存输入字符串,b[N]用来保存翻转后的字符串。然后剩余的工作就是调整数组a与数组b之间参数的问题。
代码:C语言实现
#define _CRT_SECURE_NO_WARNINGS
#include
#include
#include
#include
#include
#define N 100
void copy(char a[], char b[], int length, int count,int i)
{
int k = length - count;
int j = i - count;
for (count; count>0; count--)
{
b[k++] = a[j++];
}
}
void main()
{
char a[N];
char b[N];
gets(a);
printf("%s\n", a);
int length = strlen(a);
int length1 = length;
int count = 0;
for (int i = 0; i < length; i++)
{
if (a[i] != ' ')
{
count++;
}
else
{
copy(a, b, length1, count,i);
length1 = length1 - count-1;
b[length1] = ' ';
count = 0;
}
if (i == length - 1)
{
copy(a, b, length1, count, i+1);
}
}
b[length] = '\0';
printf("%s", b);
system("pause");
}

算法:翻转句子中单词的顺序

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/b5560a273f1ac9f062affcfa56ebae03.html