字符串逆序输出c语言(字符串逆序输出c语言pta)
用C语言写 字符串逆序输出
逆序输出有很多种,具体的实现方法取决于你题目的要求
1. 如果只是要求逆序输出,那么可以采用类似的方法:
void reverse(char *s)
{
if(*s=='\0')
return;
reverse(s+1);
printf("%c",*s);
}
这种方法在s很长的情况下会一直递归到底,不是很好。
2. 如果需要将字符串整个逆序在函数外面输出,那么可能希望采用返回字符串指针的方式;实现如下:
char * reverse( char* s )
{
static char *p = s+strlen(s)-1; //p是一个静态变量,指向当前递归层处理的字符串尾,而s指向字符串头
if(s p)
{
char c = *p; //交换头尾字符
*p = *s;
*s = c;
p--; //尾向前挪一个
reverse(s+1); //相当于头向后挪一个
}
return s;
}
3.1 当然,有的时候,并不需要reverse函数本身递归,而是可以借助一些辅助的递归函数,比如说:
void reversehelp(char * head, char * end)
{
if (head end)
{
char c = *head;
*head = *end;
*end = c;
reversehelp(++head, --end);
}
}
然后在调用时像这样调用:
char * reverse(char * s)
{
char * end = s + strlen(s) - 1;
reversehelp(s, end);
return s;
}
3.2 类似的辅助函数还可以采用一个字符串指针和一个长度参数的方式,如下例:
void reversehelp( char* s, int n )
{
if ( n 1 )
{
char c = s[n-1];
s[n-1] = s[0];
s[0] = c;
reversehelp( s+1, n-2 );
}
}
然后在调用时如下:
char *reverse(char *s)
{
reversehelp( s, strlen(s) );
return s;
}
C语言,利用指针编写程序:把从键盘输入的字符串逆序存放并输出
以下是C语言程序,使用指针将键盘输入的字符串逆序存放,并输出结果:
```c
#include stdio.h
#include string.h
int main() {
char str[100], temp;
int len, i;
char *p1, *p2;
printf("请输入一个字符串:");
scanf("%s", str);
len = strlen(str);
p1 = str;
p2 = str + len - 1; // 指向字符串最后一个字符
for (i = 0; i len/2; i++) {
temp = *p1;
*p1 = *p2;
*p2 = temp;
p1++;
p2--;
}
printf("逆序存放后的字符串为:%s", str);
return 0;
}
```
程序先从键盘输入一个字符串,然后获取字符串的长度和指向字符串首尾的指针。接着,使用指针交换相应位置上的字符,完成字符串逆序存放。最后输出逆序存放后的字符串。
注意,字符串的长度可能为奇数或偶数,因此在for循环中应该只交换字符串长度除以2个字符即可。
C语言:输入一个字符串,然后逆序输出
#include stdio.h
int main()
{ ?int len,i;
char str[100];
gets(str);
len=strlen(str);
for(i=len-1;i=0;i--)
printf("%c",str[i]);
return 0;
}
拓展资料
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
c语言字符串逆序输出。
#include?stdio.h
#include?string.h
int?main()
{
int?i;
int?str_len;
char?str[81];
gets(str);
str_len?=?strlen(str);??
//str_len-1就是最后一个元素的下标?不理解的话可以想想??"abc"?长度3?最后c的下标是2?理解了吧
//然后一直自减到i=0?也就是第一个字符?那么下面的for循环的意思就是
//从最后一个字符逐个倒着输出这个字符串的元素
for(i?=?str_len-1;?i?=?0;?i--)??
{
printf("%c",?str[i]);
}
return?0;
}
如何用C语言将字符串逆序输出?
C语言程序如下:
#includestdio.h
#includestring.h
main()
{
int i,j,t,n;
char a[10];
printf("请输入字符串:");
gets(a);
n=strlen(a);
for(i=0;i=n/2;i++)
{
t=a[i];
a[i]=a[n-1-i];
a[n-1-i]=t;? ?
}
for(j=0;jn;j++)
printf("%c",a[j]);
printf("\n");
}
扩展资料:
字符串倒序输出的五种方法
1、使用数组循环
2、StringBuffer的reverse方法
3、StringBuffer的循环
4、栈的后进先出
5、迭代完成