【C系列4.6】函數訓練之字符串逆序 1974
Time Limit: 1
s Memory Limit: 32
MB
Submission:301
AC:123 Score:10.00
Description
cyn小朋友今天上英語課學到了很多新的單詞,她於是她行雲流水般寫了一段英文小短文,但是她發現自己腦子不對,把所有的單詞都寫逆序了,你能幫幫她嗎?
Input
輸入一行字符串(長度不超過200)
Output
對於輸入,輸出每個單詞逆序後的字符串。
Samples
input:
I lliw reven reve ecnaD
output:
I will never ever Dance
Hint
輸入最後的換行不需要逆序。
例如 abc\n你需要輸出的是cba\n
下附AC代碼:
#include <stdio.h>
#include <string.h>
void wordnixu(char *start, char *end);
char* sentence(char *str);
int main() {
char str[100];
gets(str);
printf("%s\n", sentence(str));
return 0;
}
void wordnixu(char *start, char *end) {
char swap;
while (start < end) {
swap = *start;
*start++ = *end;
*end-- = swap;
}
}
char* sentence(char *str) {
char *start = str;
char *p = str;
while (*str != '\0') {
if (*str == ' ') {
wordnixu(start, str - 1);
start = ++str;
}
else
str++;
}
wordnixu(start, str - 1);
return p;
}