C语言中逆序输出函数 c语言中逆序输出函数有哪些

用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语言逆序输出?

是的,getchar()函数是这样使用的(括号中不带参数)。

看起来这一段代码是用来复制字符串的。

int a[6];应当改为:

char a[100];

前面的两段for循环应当改为:

for(i=0;i=a[0];i++)

a[i+1]=n[i];

其余的(包括第三个for循环)不变,就可以了。

C语言文件逆序输出

调用下面的函数将字符串逆序,然后输出到文件即可。

char* str_reverse(char* str)

{    

int n = strlen(str) / 2;

int i = 0;

char tmp = 0;

for(i = 0; i  n; i++)

{

tmp  = str[i];

str[i] = str[strlen(str)-i-1];

str[strlen(str)-i-1] = tmp;

}

return str;

}


网站题目:C语言中逆序输出函数 c语言中逆序输出函数有哪些
网站URL:http://scyanting.com/article/doojsso.html