33 lines
792 B
C
33 lines
792 B
C
|
// 编写一个程序,要求用户输入一个字符串,然后使用strrev函数将字符串反转,并打印反转后的字符串。
|
|||
|
#include <stdio.h>
|
|||
|
#include <stdlib.h>
|
|||
|
|
|||
|
char *strrev(char *src)
|
|||
|
{
|
|||
|
int cnt = 0;
|
|||
|
while (src[cnt++])
|
|||
|
;
|
|||
|
|
|||
|
char *res = (char *)malloc(cnt * sizeof(char *));
|
|||
|
|
|||
|
int tmp = cnt;
|
|||
|
for (int i = 0; i < cnt; i++)
|
|||
|
{
|
|||
|
res[i] = src[tmp - 2]; // tmp - 2 是为了去掉换行符, tmp - 1 是为了去掉字符串末尾的 \0
|
|||
|
tmp--;
|
|||
|
}
|
|||
|
|
|||
|
return res;
|
|||
|
}
|
|||
|
|
|||
|
int main()
|
|||
|
{
|
|||
|
char s1[100];
|
|||
|
printf("请输入一个字符串: ");
|
|||
|
fgets(s1, sizeof(s1), stdin); // scanf() 不能接收换行,故改用 fgets()
|
|||
|
char *s2 = strrev(s1);
|
|||
|
printf("反转后的字符串结果为: %s", s2);
|
|||
|
free(s2);
|
|||
|
|
|||
|
return 0;
|
|||
|
}
|