//两个指针
#include <stdio.h>
#include <stdlib.h>char* Reverse(char * s)
{char* left=s ;char* right=s ;while(*right)right++;right--;while(right>left){//swap—>创建临时变量/*char tmp=*left;*left=*right;*right=tmp;*///swap—>异或*left=*left^*right;*right=*left^*right;*left=*left^*right;left++;right--;}return s ;
}
void test()
{char str[]="hello,world-coming!" ;  //注意此处不能用char* str="hello,world-coming!",因为指针存于常量区,不能去改变它printf( "%s\n",Reverse(str));
}
int main()
{test();system( "pause");return 0;
}递归
//#include <stdio.h>
//#include <stdlib.h>
//#include <string.h>
//
//void Reverse(char* str,int left,int right)
//{
//             if(left>=right)
//                             return;
//
//             char tmp=str[left];
//             str[left]=str[right];
//             str[right]=tmp;
//
//             Reverse(str,left+1,right-1);
//}
//void test()
//{
//             char str[]="hello,world-coming!";
//             int len=strlen(str)-1;
//
//             Reverse(str,0,len);
//
//             printf("%s\n",str);
//}
//int main()
//{
//             test();
//             system("pause");
//             return 0;
//}数组
//#include <stdio.h>
//#include <stdlib.h>
//#include <string.h>
//
//char* Reverse(char* str,int left,int right)
//{
//             while(left<right)
//             {
//                             char tmp=str[left];
//                             str[left]=str[right];
//                             str[right]=tmp;
//
//                             left++;
//                             right--;
//             }
//
//             return str;
//}
//void test()
//{
//             char str[]="hello,world-coming!";
//             int len=strlen(str);
//
//             printf("%s\n",Reverse(str,0,sizeof(str)/sizeof(str[0])-2));  //sizeof(str)/sizeof(str[0])是算上'\0'的
//}
//int main()
//{
//             test();
//             system("pause");
//             return 0;
//}

结果:

#include <stdio.h>
#include <stdlib.h>int SubStr(char dst[],char src[],int start,int len)
{char* first=src +start;char* end=src +start+len;int i=0;while(*first && first<end /*&& i<len*/ ){dst[i]=src [start+i];first++;i++;}dst[i]='\0' ;  //切记return i+1;  //包括'\0'
}//变量较少的实现方法
//int SubStr(char dst[],char src[],int start,int len)
//{
//             int i=0;
//
//             while(len-- && src[start]!='\0')
//                             dst[i++]=src[start++];
//
//             dst[i]='\0';
//
//             return i+1;
//}
void test()
{char str[]="hello world" ;char target[100];printf( "%d\n",SubStr(target,str,4,20));printf( "%s\n",target);
}
int main()
{test();system( "pause");return 0;
}

结果:

#include <stdio.h>
#include <stdlib.h>void test()
{int c;while((c=getchar())!='\n' ){if(c>='A' && c<='Z')c+=32;putchar(c);}printf( "\n");
}
int main()
{test();system( "pause");return 0;
}

结果:

#include <stdio.h>
#include <stdlib.h>void test()
{int c;while((c=getchar())!=EOF ){if(c>='A' && c<='z')c= 'A'+'z' -c;putchar(c);}
}
int main()
{test();system( "pause");return 0;
}

结果:

#include <stdio.h>
#include <stdlib.h>
#include <assert.h>//把dst当成一个指针
//char* Strcpy(char* dst,const char* src)
//{
//             assert(src);
//             int i=0;
//
//             while(*src)
//             {
//                             dst[i++]=*src++;
//             }
//
//             dst[i]='\0';
//
//             return dst;
//}
//把dst当指针
char* Strcpy(char * dst,const char* src)
{assert(src);assert(dst);char* d=dst;while(*src)*d++=*src++;*d= '\0';return dst;
}
//库函数的实现方法
//char* Strcpy(char* dst,const char* src)
//{
//             assert(src);
//             assert(dst);
//             char* d=dst;  //先保存住dst的首地址,让d移动
//
//             while((*d++=*src++)!='\0')
//                             ;
//
//             return dst;
//}
void test()
{char* str="hello world,change the WORLD" ;char dest[100];printf( "%s\n",Strcpy(dest,str));
}
int main()
{test();system( "pause");return 0;
}

结果:

转载于:https://blog.51cto.com/ljy789/1833292

C基础(36——40)相关推荐

  1. c语言从键盘输入一个百分制成绩score,C语言 基础练习40题

    一.题目 1.输入2个整数,求两数的平方和并输出. 2. 输入一个圆半径(r)当r>=0时,计算并输出圆的面积和周长,否则,输出提示信息. 3.函数y=f(x)可表示为: 4.编写一个程序,从4 ...

  2. 编写高质量代码:改善Java程序的151个建议(第3章:类、对象及方法___建议36~40)

    建议36:使用构造代码块精简程序 什么叫做代码块(Code Block)?用大括号把多行代码封装在一起,形成一个独立的数据体,实现特定算法的代码集合即为代码块,一般来说代码快不能单独运行的,必须要有运 ...

  3. javaweb基础(36)_jdbc进行批处理

    在实际的项目开发中,有时候需要向数据库发送一批SQL语句执行,这时应避免向数据库一条条的发送执行,而应采用JDBC的批处理机制,以提升执行效率. JDBC实现批处理有两种方式:statement和pr ...

  4. Python 小型项目大全 36~40

    三十六.沙漏 原文:http://inventwithpython.com/bigbookpython/project36.html 这个可视化程序有一个粗糙的物理引擎,模拟沙子通过沙漏的小孔落下.沙 ...

  5. dhu复试基础——36 水果价格

    36 水果价格 作者: 朱星垠 时间限制: 1S章节: 循环 问题描述 : 一家水果店出售四种水果,每公斤价格的苹果(代码为a)1.5元,橘子(代码为o)1.4元,香蕉(代码为b)1.48元,菠萝(代 ...

  6. 留学生日常英语36~40

    36.怎么表达"去医院"? 中学时,老师教过我们两个词,一个是go to hospital,表示"去医院看病"; go to the hospital,表示&q ...

  7. 零基础36天学c语言心得总结

    学习过程是自己一个人在摸索,所以有一些不合仪的话语,还请指正 2020年12月26日截至2021年1月31日历时36天在家凭借b站分享的免费视频和一些网站平台自学了c语言的知识,学习c语言是我很早之前 ...

  8. OpenGL基础36:天空盒

    前面的例子中,根本没有场景的感觉,除了地板和几块箱子,周围一片黑暗-- 一.立方体贴图 立方体贴图就是6个2D贴图,每个贴图都是立方体的一个面,当然这样的立方体贴图是一个整体,有自己特有的属性,可以使 ...

  9. Java 入门练习(36 - 40)

    文章目录 JAVA36 判断学生成绩 描述 输入描述 输出描述 示例1 示例2 解答 JAVA37 字符串去重 描述 输入描述 输出描述 示例1 解答 JAVA38 集合遍历 描述 输入描述 输出描述 ...

最新文章

  1. 有理想的程序员必须知道的15件事
  2. Centos sudo添加用户
  3. 深入理解JavaScript系列(1):编写高质量JavaScript代码的基本要点
  4. 封装一个Array 数据 绑定 html select 方法
  5. P5707 【深基2.例12】上学迟到(python3实现)
  6. 十四、汇编指令(存储、加法、减法、乘法、除法、跳转、子程序、if判断、中断)
  7. 环境配置与PyG中图与图数据集的使用
  8. python - 接口自动化测试 - MysqlUtil - 数据库操作封装
  9. 分段式多级离心泵_溧阳耐磨矿用多级泵水泵厂
  10. JAVA小白启蒙篇:第一个SSM框架搭建示例(附源码下载)
  11. 《大数据技术原理与应用》林子雨 期末复习重点(总结)
  12. html转换为pdf的笔顺,正式出台的笔顺标准写法,很全面!(附电子打印版)
  13. Android 项目上线流程总结
  14. 喜迎B+轮融资,ThingJS母公司优锘科技成为新基建的一匹黑马
  15. 上海交大吴齐天的科研思考
  16. Android 微信分享不显示分享出去的图标问题
  17. linux邮件客户端配置文件,在Deepin V20下配置Evolution邮件客户端,添加新邮箱全过程...
  18. python随机数种子seed()的讲解
  19. 【安信可NB-IoT模组EC系列AT指令应用笔记④】将设备位置接入阿里云地图,实现空间数据可视化
  20. transforms.Compose和transforms.ToTensor()

热门文章

  1. spring mvc---controller返回值
  2. ExtFrame的特点与缺点
  3. ubuntu10.10和windows双系统启动顺序的修改(转)
  4. 三层中如何在服务器与客户端之间传输自定义的'Record'类型数据的例子
  5. Ubuntu18.04及以上设备安装CUDA,CUDNN,Anaconda亲测方法
  6. python以读写方式打开文件_python 文件读写with open模式r,r+,w,w+,a,a+的区别
  7. 计算机ip配置不正确怎么办,电脑ip地址不对该怎么办
  8. php 表别名,MySQL和PHP – 不是唯一的表/别名
  9. 64位装32位oracle软件,在64位linux下安装32位oracle软件
  10. python安装与配置虚拟环境包_python 虚拟环境配置及pypi包使用及包怎么