翻轉句子中單詞的順序。
題目:輸入一個英文句子,翻轉句子中單詞的順序,但單詞內字符的順序不變。
句子中單詞以空格符隔開。為簡單起見,標點符號和普通字母一樣處理。
例如輸入“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");
}