问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

用C语言,翻转字符串,(例如输入“ABCD”,则输出“DCBA”)!方法越多越好!!

发布网友 发布时间:2022-06-01 01:41

我来回答

5个回答

热心网友 时间:2023-11-08 23:50

【方法一】
//也是最简单的有点投机
#include <stdio.h>

int main(){
char str[]="ABCD";
int i;
for(i=3;i>=0;i--) printf("%c",str[i]);
return 0;
}

【方法二】
/*
用指针的,将第一个与最后一个互换,第二个与倒数第二个互换……直到逆置完成
*/

#include <stdio.h>
#include <string.h>

int main(){
char str[]="ABCD",*start,*end,t;
int len,i;
len=strlen(str);
start=str;
end=&str[len-1];
while(start<end){
t=*start;
*start=*end;
*end=t;
start++;
end--;
}
printf("REVERSED:\n");
for(i=0;str[i];i++) printf("%c",str[i]);
return 0;
}
【方法三】
//用堆栈的性质来实现

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAXSTACK 100

char pop(struct stack *stk);
void push(char ch,struct stack *stk);
int empty(struct stack *stk);

struct stack{
int top;
char str[MAXSTACK];
};

int main(void)
{
int i,len_str;
char str[MAXSTACK];
struct stack s;
s.top=-1;
printf("\nInput the string please:");/*输入你要逆置的字符串e.g.“ABCD”*/
gets(str);
len_str=strlen(str);
for(i=0;i<len_str;i++)
push(str[i],&s);
printf("The disorder is:");
for(i=0;i<len_str;i++){
if(!empty(&s))
printf("%c",pop(&s));
}
getch();
return 0;
}

char pop(struct stack *stk){
return stk->str[stk->top--];
}

void push(char ch,struct stack *stk){
if(stk->top==MAXSTACK-1){
printf("\nOVERFLOW!\n");
exit(1);
}
else stk->str[++(stk->top)]=ch;
return;
}

int empty(struct stack *stk){
return (stk->top==-1);
}

还可以用递归的思想来解决该问题,这里就不多说了……

热心网友 时间:2023-11-08 23:51

main()
{
char str[]; int i;
scanf("%s,&str);
int n=strlen(str);
while(i<=n)
{
str[i++]=str[n--];
printf("%c",str[i]);
}
printf("\n");
}
没有测试,你自己试一下.
其实这个本身就是堆栈的性质。
在汇编语言中,入栈和出栈尊从先入后出的原则,先push,再pop,结果就是把这个字符串的输出结果颠倒过来。

热心网友 时间:2023-11-08 23:51

每一个输入都变成一个变量,然后再用printf把变量掉转打印出来

热心网友 时间:2023-11-08 23:52

用CString中的MakeReverse就可搞定

热心网友 时间:2023-11-08 23:53

下班了没时间写,堆栈能很容易的实现
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
怎样让孩子主动找老师补课? 表格列求和公式怎么设置 求和函数公式怎么输入 北京注册成立一个公司需要多少钱 北京公司都是什么 手机导航地图语音怎么下载 如何分别真金和仿金首饰 怎样区分真金和仿金首饰呢 小学生新年晚会主持人的串词!!(不要太多)急 大大后天就需要了!!!_百度... 周年晚会策划公司 奥格瑞玛传送门大厅在哪 c语言中,字符反转,怎么做?(还没学指针) C语言字符串逆转函数 微信怎么查名下有几个 c语言如何实现字符串按位翻转 西游记第14回好词佳句摘抄 c语言如何实现字符串的反转 西游记第44回的好词? 《西游记》第44回的好词有哪些? 怎么做才能减肥减掉二十斤 怎么减肥最快时间减二十斤 作为一个学生,怎么合理的减肥减掉二十斤左右 农商银行怎么删除收款人 我怎么才可以减下二十斤阿! 京东快递单号JDVC00128256098现在在什么地方? jdvc京东物流查询3953021432? 京东快递单号JDVC00128256098货到那里了 京东快递单号JDvc00160893480到那里了 京东快递运单号JDVC01665614361? 京东快递运单号jdvc00313585259货到付款 空袭6穿42韦德之道8穿多少? 快来看看啊!!!急求,,,,在线等!!c语言编程问题:输入一个字符串,将它反向输出。 C语言。输入一个字符串按反方向存放,并将其输出。怎样编写这个程序? C语言怎么将字符串数组元素进行逆转 如何查看自己名下的 苹果怎么换系统 天天基金买打新债用那个银行卡好呢? 煤气罐(液化气罐)能不放到使用放倒有危险吗? 求一道汇编上机题 .设AX、BX中是带符号数,CX、DX中是无符号数,请写出实现以下功能的指令或程序段。 The school is ()the park.1.next 2.next to 3.the next 4.the next to如题 谢谢了 香奈儿口红37号有1g的吗 闪电侠、神力女超人、黑寡妇、黑豹和鹰眼会出个人真人电影吗?黑寡妇和黑豹貌似有消息,而且百度百科也能 晶澳科技股票股市行情大盘 声音到底是通过什么形式传播的,是波还是声波? 交换空间全国有多少家 南京交换空间装饰怎么样? 交换空间有限公司怎么样? 天水市交换空间装饰公司好吗?马上装修了,不知道用哪家公司。 许昌市交换空间装饰有限公司怎么样? 四川交换空间装饰有限公司怎么样?