C语言。输入一个字符串按反方向存放,并将其输出。怎样编写这个程序? C语言:编写一个函数,将一个字符串按逆序存放。在主函数中输入...

作者&投稿:柏贴 (若有异议请与网页底部的电邮联系)
突发奇想,用堆栈和管道似乎解决这个问题更简单有效,而且不用考虑字符串长度:

#include <fcntl.h>
#include <io.h>
#include <memory.h>
#include <stdio.h>
#include <string.h>
#define szSTR 256

/*递归方式逆序存储字符串,将逆序内容写入fw底层流文件*/
void rev(char * src, int fw)
{
if (!src || fw < 1) return ;
if (!*src) return ; /*如果字符串结束则返回*/
rev(src + 1, fw); /*递归到下一个字符地址*/
write(fw, src, 1); /*递归返回后将字符写入管道*/
}

/*反向函数,输入src,输出des*/
void strv(char * src, char * des)
{
int p[2] = {0, 0}; /*创建一对管道用于读写*/
_pipe(p, _O_BINARY, szSTR);
rev(src, p[1]); /*将输入内容反方向写入管道*/
close(p[1]);/*关闭管道*/
char * s = des; /*将管道内容输出到目标字符串*/
while(!eof(p[0])) {
read(p[0], s++, 1);
}
*s = 0; /*字符串结束标志写入*/
close(p[0]);/*关闭管道*/
}

int main(void)
{
char a[szSTR], b[szSTR];
do {
printf("请输入一个字符串,输入exit结束.\n");
scanf("%s", a);
strv(a, b);
printf("反向存储:[%s]\n", b);
}while(!strstr(a, "exit"));
return 0;
}

#include<stdio.h>
#include<string.h>
int main(void){
int i;
int x;
char nArr[100];//可以自己定义数组的大小;
scanf("%s",nArr);//输入字符串
x=strlen(nArr);//找出字符串长度

for(i=x;i>=0;i--){
printf("%c",nArr[i]);//倒序输出字符串
}
return 0;
}

scanf("s",a);
n=strlen(a);
for(i=n-1;i>=0;i--)
printf("%c",a[i]);

将输入的字符串放进数组里,然后将数组内的内容从后到前依次输出!

C语言编程,写一个函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串,,求下面程序解释~

#include
#include
void printit(char *str,int length) //返序输出函数
{

int i;
for(i=length-1;i>=0;i--) //从给定的字符串的最后一位依次向前遍历各字符
putchar(*(str+i)); //每向前一个字符即打印该字符,直至第一个字符为止。
}
int main()
{ char str[80]=""; //定义一个长度为80字节的字符串数组,并初始化
gets(str); //从键盘中输入一个字符串(遇回车键结束)
printit(str,strlen(str)); //调用上面定义的函数反序输出字符串
printf("
"); //输入一个回车换行符,使后续输出能另起一行
return 0;
}

反序字符串,只需要将首尾字符依次调换即可。
#include #include // 反序字符串x并返回char* reverse(char *x){ int len = strlen(x); int i, n = len / 2; char tem; for (i = 0; i <= n; i++) { tem = x[i]; x[i] = x[len - 1 - i]; x[len - 1 - i] = tem; } return x;}int main(){ char str[100]; printf("input a string :"); gets(str); puts(reverse(str)); return 0;}

C语言。输入一个字符串按反方向存放,并将其输出。怎样编写这个程序...
答:write(fw, src, 1); /*递归返回后将字符写入管道*/ } /*反向函数,输入src,输出des*/ void strv(char * src, char * des){ int p[2] = {0, 0}; /*创建一对管道用于读写*/ _pipe(p, _O_BINARY, szSTR);rev(src, p[1]); /*将输入内容反方向写入管道*/ close(p[1]);/...

C语言编程,写一个函数,使输入的一个字符串按反序存放,在主函数中输入和...
答:include <string.h> define N 10 //可通过改变N 的值来改变输入字符串的长度 char a[30];int i;void main(){ void Reverse(); //函数声明 printf("请输入字符串:");scanf("%s",&a[i]);printf("反转后的字符串:");Reverse(); //函数调用 } void Reverse() //函数定义...

C语言编程,写一个函数,使输入的一个字符串按反序存放,在主函数中输入和...
答:for(i=length-1;i>=0;i--) //从给定的字符串的最后一位依次向前遍历各字符 putchar(*(str+i)); //每向前一个字符即打印该字符,直至第一个字符为止。}int main(){ char str[80]=""; //定义一个长度为80字节的字符串数组,并初始化gets(str); //从键盘中输入一个字符串(遇回车键结束)printit(...

C语言编程,写一个函数,使输入的一个字符串按反序存放,在主函数中输入和...
答:strcat(string ,string ) ---把后1个剪切后放入前一个字符串,空间要够 strcmp(string ,string )---比较2个字符串,0为相同,>0前1个大,<0后1个大 strlen(string )---字符串长度

C语言编程,写一个函数,使输入的一个字符串按反序存放,在主函数中输入和...
答:include <string.h> void input(char st[]);//定义输入函数 void reverse(char st[]);//定义反序函数 int main(){ char s[20];input(s);//调用输入函数 printf("Original string: %s\n", s);//输出原字符串 reverse(s);//调用反序函数 printf("New string: %s\n", s);//输出反...

C语言编程,写一个函数,使输入的一个字符串按反序存放,在主函数中输入和...
答:gets(str); //从键盘中输入一个字符串(遇回车键结束)printit(str,strlen(str)); //调用上面定义的函数反序输出字符串 printf("\n"); //输入一个回车换行符,使后续输出能另起一行 return 0;}

用C语言写一个函数,使输入的字符串按反序存放,在主函数中输入和输出字...
答:文件1:include <stdio.h> define N 6 //static char str[N]; 这个没必要 int f (char); //声明flashback函数. // 声明放外面,好的习惯 int main(){ char str[N] = "abcde";printf("原字符串:\n");puts (str);f (str[N]); //调用flashback函数.printf("倒序后的字符串...

写一个函数,使输入的一个字符串按反方向存放,并将其打印出来。(用一维...
答:include <stdio.h> include <string.h> define SIZE 256 void reC(char str[]){ int i=0;for (i=strlen(str)-1; i>=0; --i){ printf("%c",str[i]);} } int main(){ char str[SIZE];printf("Please input a string: \b");gets(str);reC(str);printf("\n");return 0;...

C语言 写一个函数使输入的一个字符串按反序存放
答:编写一个函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符。可以设置一个中间值,让两端的字符相交换,然后前头的向后移动一位,后头的向前移动一位。当前头的变量大于中间值时。程序停止执行。根据此原理编写代码如下:include<stdio.h> define N 100 void inverse(char[]);int main(...

一道c语言题目:写一个函数,使输人的一个字符串按反序存放,在主函数中输...
答:include<stdio.h>#include <string.h>int main() {int f(char str[]);//<===int i;char ch[30];char str[30];gets(str);//<===f(str);//<===puts(str);//<===return 0;}int f(char str[]) {int i,n;char t;n=strlen(str);for (i=0;i<n/2;i++) {t=str[i...