字符串逆序输出 c语言

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符串逆序输出 c语言相关的知识,希望对你有一定的参考价值。

#include <stdio.h>
void revers()

char c;
if((c = getchar()) != '\n')
revers();
if(c != '\n'&&c>='a'&&c<='z')
putchar(c);


int main()

int a;
scanf("%d\n",&a);
while(a--)

revers();
printf("\n");

return 0;


请问这个程序是如何实现逆序输出字符串?如何记录输入的字符串? 麻烦解释下程序。感激。。

这是利用递归调用实现用堆栈保存字符的,举例说明:
[scanf("%d\n",&a);]假设输入1
a不等于0,开始循环,[a--]a=0
[revers();]假设输入abc并回车,假设调用的函数叫revers1,内容与revers()一样
revers1():
[c=getchar()]c='a'
因为c!='\n'成立,执行[revers();]假设调用的函数叫revers2,注意revers1执行到此尚未结束
revers2():
[c=getchar()]c='1'
因为c!='\n'成立,执行[revers();]调用revers3,revers2执行到此等待执行revers3完后继续执行
revers3():
[c=getchar()]c='c'
因为c!='\n'成立,执行[revers();]调用revers4
revers4():
[c=getchar()]c='\n'
因为c!='\n'不成立,执行下句
因为不满足c!='\n'直接函数返回revers3
因为c='c'满足条件c != '\n'&&c>='a'&&c<='z'执行[putchar(c);]输出c,然后返回revers2

因为c='1'不满足条件c != '\n'&&c>='a'&&c<='z'直接返回revers1

因为c='a'满足条件c != '\n'&&c>='a'&&c<='z'执行[putchar(c);]输出a,然后返回main
输出换行,执行[return 0;]

最后得到的输出为ca,这是将输入的字符串中小写字母进行逆序输出,其他字符则被滤除
参考技术A #include <stdio.h>
void revers()

/*
递归实现,一直到输入换行符时开始往外输出,这个时候的revers()函数输出的
字符是最后面输入的那个,然后依次减少递归的层次。
*/
    char c;
    if((c = getchar()) != '\\n')
        revers();
    if(c != '\\n' && c >= 'a' && c <= 'z') 
putchar(c);
putchar(' ');

        


int main()

int a;

scanf("%d", &a);
while(a--) //这个a控制输入次数,a=3就可以实现2次逆序

revers();
printf("\\n");  //这个放在外面防止第一次输入变量a后按回车,然后这个换行符
//不符合reverse(),所以输出一个换行符,再加上打印一个换行符


return 0;

C语言:输入一个字符串,然后逆序输出

输入一个字符串,然后逆序输出,要求主函数调用fun函数,fun的功能是逆序排列,然后输出,谢谢

#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)以及超级电脑等作业平台。

参考技术A

#include<stdio.h>

#include<string.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;j<n;j++)

printf("%c",a[j]);

printf("\\n"); 

 

拓展资料:

C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。 目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。

C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。

其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。

参考资料:C语言_百度百科



参考技术B

可以将整数当做字符串(字符串长度不超过10)接收,然后反向输出字符数组元素即可。

字符串实际长度可以用strlen函数来计算。

方法程序如下:

#include<stdio.h>

#include<string.h>

main()

char a[10];int i,j;

scanf("%s",a);

j=strlen(a);

for(i=j-1;i>=0;i--)

printf("%c",a[i]);

printf("\\n");

扩展资料:

C语言高效编程技巧:

一:以空间换时间

计算机程序中最大的矛盾是空间和时间的矛盾,那么,从这个角度出发逆向思维来考虑程序的效率问题

二:数学方法解决问题 

数学是计算机之母,没有数学的依据和基础,就没有计算机发展,所以在编写程序的时候,采用一些数学方法会对程序的执行效率有数量级的提高。

三:使用位操作

实现高效的C语言编写的第三招----使用位操作,减少除法和取模的运算。

在计算机程序中,数据的位是可以操作的最小数据单位,理论上可以用“位运算”来完成所有的运算和操作。一般的位操作是用来控制硬件的,或者做数据变换使用,但是,灵活的位操作可以有效提高程序运行的效率。

参考资料来源:百度百科-C语言

参考技术C #include <stdio.h>
#include <string.h>
void fun(char a[])

int i,length;char t;
length=strlen(a);
for(i=0;i<length/2;i++)

t=a[i];
a[i]=a[length-1-i];
a[length-1-i]=t;


main()

char a[10];
printf("input a string:");
gets(a);
puts(a);
fun(a);
puts(a);

//调试成功本回答被提问者采纳
参考技术D 本程序已运行成功。
#include <stdio.h>
#include <string.h>
fun(char c[20])
int len,i;char *p,b[20];
p=c;
len=strlen(c);
while(*(p+1)!='\0')p++;
for(i=0;i<len;i++)
b[i]=*p;
p--;

b[i]='\0';
puts(b);
printf("\n");

main()
char a[20];
printf("\nPlease Enter a string:\n");
gets(a);
fun(a);

以上是关于字符串逆序输出 c语言的主要内容,如果未能解决你的问题,请参考以下文章

字符串逆序输出 c语言

C语言将字符串逆序输出问题(用函数)

c语言字符串逆序输出。

如何用C语言将字符串逆序输出?

c语言程序 输入一字符串存入数组中,逆序存放并输出

c语言:将递归的方法将一个正整数逆序输出