问个指针的题。。。不是无脑求答案。。
求字符串逆序
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了。。求指教或者我自己琢磨答案。。









