1)不使用数组,这种做法其实不符合题意,因为你没有连接,你的原数组没有变化

  1. #include <stdio.h>
  2. #include <string.h>
  3. int main(){
  4. char s[50];
  5. gets(s);
  6. printf("%s",s);//正序输出
  7. for(int i=strlen(s)-1;i>=0;i--){
  8. printf("%c",s[i]);//倒序输出
  9. }
  10. return 0;
  11. }

2)使用了个临时数组连充当连接,这个是符合题意的

  1. #include<string.h>
  2. #include<stdio.h>
  3. int main(){
  4. char s[101];
  5. gets(s);
  6. int len=strlen(s);
  7. for(int i=len-1;i>=0;i--){
  8. char ch[2];
  9. sprintf(ch,"%c",s[i]);//将原数组的值倒序存进那个中间数组里,方便连接
  10. //这两个函数的用法不懂的可以去搜一下
  11. strcat(s,ch);//将那几个字符一个一个倒序连接到原数组,这里的strcat的两个参数必须是字符串,所以我要先将字符转成字符串才行,当然不用函数也行,自己写一个连接函数
  12. }
  13. printf("%s",s);
  14. }

3)先将数组倒序存入,再连接到原数组上

  1. #include<string.h>
  2. #include<stdio.h>
  3. int main(){
  4. char s1[101],s2[101];
  5. gets(s1);
  6. int len=strlen(s1);
  7. for(int i=len-1,j=0;i>=0,j<len;i--,j++){//for循环要同时循环两个参数
  8. s2[j]=s1[i];//先将数组倒序存入一个新数组
  9. }
  10. strcat(s1,s2);//再连接
  11. printf("%s",s1);
  12. }

4)不借用库函数,只使用输入输出函数

  1. #include<stdio.h>
  2. int Strlen(char *s){//获取字符串长度函数
  3. int len=0;
  4. while(s[len]!='\0'){
  5. len++;
  6. }
  7. return len;
  8. }
  9. void fun(char *s,char ch){//字符连接函数
  10. int len=Strlen(s);
  11. s[len]=ch;
  12. s[len+1]='\0';//这个一定要加,因为数组被你人为的更改了,所以要自己手动加上结束符
  13. }
  14. int main(){
  15. char s[101];
  16. scanf("%s",s);
  17. int len=Strlen(s);
  18. for(int i=len-1;i>=0;i--){
  19. char ch;
  20. ch=s[i];
  21. fun(s,ch);
  22. }
  23. printf("%s",s);
  24. }
点赞(0)
 

9.9 分

1 人评分

 

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论