问个指针的题。。。不是无脑求答案。。
求字符串逆序
Description
将输入的一个字符串s逆序输出。
编写一个函数str_rev()求一个串的逆序串。
str_rev()的调用格式见append.c,原型如下:
char * str_rev(char *, char *)
参数是字符串s和它的逆序串str,str_rev(str, s)函数调用后,str中存储的串为s串的逆序。
Input
输入为一个串s。输入最少为一个字符,最多不会超过100个字符。
Output
串s的逆序。
输出两遍,一遍是测试返回值,一遍是测试str。
Sample Input
ABCDE
Sample Output
EDCBA
EDCBA
HINT
返回值参考标准库函数strcpy()、strstr()、strchr()的设计思路:返回目标串的首地址。
Append Code
append.c,
Description
将输入的一个字符串s逆序输出。
编写一个函数str_rev()求一个串的逆序串。
str_rev()的调用格式见append.c,原型如下:
char * str_rev(char *, char *)
参数是字符串s和它的逆序串str,str_rev(str, s)函数调用后,str中存储的串为s串的逆序。
Input
输入为一个串s。输入最少为一个字符,最多不会超过100个字符。
Output
串s的逆序。
输出两遍,一遍是测试返回值,一遍是测试str。
Sample Input
ABCDE
Sample Output
EDCBA
EDCBA
HINT
返回值参考标准库函数strcpy()、strstr()、strchr()的设计思路:返回目标串的首地址。
Append Code
append.c,
append.c:
程序代码:
int main() { char s[MAX_STR_LEN], str[MAX_STR_LEN]; gets(s); puts(str_rev(str, s)); puts(str); return 0; }
程序代码:
#include <stdio.h> #include <string.h> #define MAX_STR_LEN 101 char * str_rev(char *str[], char *s[]) { int s1,i; str=s1=s; while(*s!='\0') { s++; } s--; for(;s>=s1;) { *str=*s; str++; s--; } return *str; } int main() { char s[MAX_STR_LEN], str[MAX_STR_LEN]; gets(s); puts(str_rev(str, s)); puts(str); return 0; }
以上是我做的。。以证明不是无脑求 老师说自定义函数哪里用char *就行,但是既然是两个字符串,用char *我就不明白怎么区分str 和 s了。。求指教或者我自己琢磨答案。。