c语言字符串函数反序输出 c语言输入字符串反序输出

如何用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、迭代完成
C语言实现字符串反序输出#include "stdio.h"
#include "string.h"
void strReverseB(char *pstr)
{
int length=strlen(pstr);
char tmp;
int i;
for(i=0;ilength/2;i)
{
tmp=pstr[i];
pstr[i]=pstr[length-1-i];
pstr[length-1-i]=tmp;
}
}
int main()
{
char str[100]={0};
FILE *fp;
if((fp=fopen("Test.txt","w"))==NULL)
{
printf("File open failed!\n");
return 1;
}
printf("Please input a string:");
gets(str);
strReverseB(str);
printf("Output:%s\n",str);
fprintf(fp,"%s",str);
fclose(fp);
}
结果存到了Test.txt文件中:
用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(sp)
{
char c = *p; //交换头尾字符
*p = *s;
 *s = c;
p--; //尾向前挪一个
reverse(s 1); //相当于头向后挪一个
}
return s;
}
3.1 当然,有的时候,并不需要reverse函数本身递归,而是可以借助一些辅助的递归函数 , 比如说:
void reversehelp(char * head, char * end)
{
if (headend)
{
char c = *head;
*head = *end;
*end = c;
reversehelp(head, --end);
}
}
然后在调用时像这样调用:
char * reverse(char * s)
{
char * end = sstrlen(s) - 1;
reversehelp(s, end);
return s;
}
3.2 类似的辅助函数还可以采用一个字符串指针和一个长度参数的方式,如下例:
void reversehelp( char* s, int n )
{
if ( n1 )
{
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语言字符串反序输出数组定义完,没有初始化;系统会分配一段物理内存给数组,如果不初始化,就会打印出乱码 , 该段内存地址有可能之前被使用过 。
char i[100]={0},o[100]= {0};
结果对比:
未初始化数组
2.初始化数组
C语言反序输出字符串c语言字符串函数反序输出你是说*rev与rev[]吧c语言字符串函数反序输出,
在C语言里,当定义char
*rev的时候 , rev是放在了常量区,值不能修改,因此会出错c语言字符串函数反序输出;
而定义char
rev[]的时候,rev数组是放在了栈区,值可以修改,因此用数组不会报错 。
c语言字符串逆序输出 。#include stdio.h
#include string.h
int main()
{
int i;
【c语言字符串函数反序输出 c语言输入字符串反序输出】 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语言输入字符串反序输出、c语言字符串函数反序输出的信息别忘了在本站进行查找喔 。

    推荐阅读