【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;
}