【面试常考】C语言:输入:"student a am i",输出"i am a student,不能使用库函数

#include<stdio.h>
//#include <assert.h>
void my_reverse(char *left ,char * right)
{
 //assert(left);
 //assert(right);   用以处理指针函数为空,保证有效
 while(left < right)
 {
  char tmp =  *left;  //借助中间变量实现逆置
  *left =  *right;
  *right = tmp;
  left ++;
  right --;
 }
}
int my_strlen(char *str)//得到数组长度定义求取字符串长度的函数
{
 int count = 0;
 while(*str++)
 {
  count ++; 
 } 
 return count; //返回count指向int型的具体值
}
void reverse(char arr[])  //char *arr
{ 
 char *pstart = arr;
 char *pend = arr + my_strlen(arr) -1; //注意数组从0开始
 char *pcur = NULL;
 if((arr == NULL) || (arr[0]==‘\0‘)) //空数组或数组结束,不处理
 {
  return ;   
 }
 my_reverse(pstart,pend);  //逆置整个数组
 while(*arr)//不为NULL,为‘\0’的情况
 {
  pcur =arr;  //数组开始地址
  while(*arr !=‘\0‘ && *arr !=‘ ‘)  //在单词内部时
  {
   arr++;
  }
  pend =arr - 1;  //退一位
  my_reverse(pcur, pend);    //逆置遇到空格的单词
  if(*arr == ‘ ‘)  //说明后面还有单词 
  {
   arr++; 
  }
 }
}
int main()
{
 char arr[] = "student a am i";  
 //思路:先将字符串逆置,再遇到空格处将该单词逆置即可
 reverse(arr);
 printf("%s\n",arr);
 return 0; 
}

时间: 2024-10-05 04:27:24

【面试常考】C语言:输入:"student a am i",输出"i am a student,不能使用库函数的相关文章

PHP面试常考内容之Memcache和Redis(1)

你好,是我琉忆.继上周(2019.2-11至2-15)发布的"PHP面试常考内容之面向对象"专题后,发布的第二个专题,感谢你的阅读.本周(2019.2-18至2-22)的文章内容点为以下几点,更新时间为每周一三五,可以关注本栏持续关注,感谢你的支持. 一.什么是Memcache?二.Memcache有什么特征?三.Memcache的内存管理机制是什么样的?四.Memcache和Memcached有什么区别?五.如何操作Memcache?六.如何使用Memcache做Session共享?

Java面试常考到的东东

1.super与this的区别? super是我们在子类中想使用被子类隐藏的父类的成员变量或方法时,可以使用的关键字. this出现在类的实例方法中,代表使用该方法的当前对象.也可以出现在类的构造方法中,代表使用该构造方法所创建的对象. this()代表当前类对象,super()代表父类对象. 表示在子类访问父类的成员和行为,必须受到类继承规则的约束. 在子类的构造函数中,如果第一行没有写super(),编译器会自动插入.但是如果父类没有不带参数的构造函数,或这个构造函数被私有化了,此时必须加入

计算机网络面试常考总结(二)

目录 简述DNS域名系统及其工作原理. 简述HTTP协议及其工作原理. HTTP报文的格式? HTTP请求报文中的方法有哪些? http1.1和http2.0的区别? http的返回码以及代表的意思? 简述https.https与http的区别? IP数据报格式? TCP数据报格式? UDP数据报格式? 以太网MAC帧格式? 怎么判断两台主机是否连接好? 简述RIP及其工作原理. 简述OSPF及其工作原理. 简述BGP及其工作原理. 写在最前面:本文章所有内容是本人从网络上以及<计算机网络第七版

面试常考数据结构与算法

数据结构部分: 1.数组和链表的区别.(很简单,但是很常考,记得要回答全面) C++语言中可以用数组处理一组数据类型相同的数据,但不允许动态定义数组的大小,即在使用数组之前必须确定数组的大小.而在实际应用中,用户使用数组之前无法确定数组的大小,只能够将数组定义成足够大小,这样数组的空间可能不被使用,从而造成内存空间的浪费.链表是一种常见的数据组织形式,他采用动态分配内存的形式实现.需要时可以用new分配内存空间,不需要时用delete将已分配的空间释放,不会造成内存空间的浪费. 从逻辑结构上来看

HTTP协议详解(前端面试常考知识点)

分类:杂谈| 发布:佚名| 查看:70 | 发表时间:2014-2-17 引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出.HTTP协议的主要特点可概括如下:1.支持客户/服务器模式.2.简单快速:客户向服务器请

Java面试常考知识点

1.  什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? Java虚拟机是一个可以执行Java字节码的虚拟机进程.Java源文件被编译成能被Java虚拟机执行的字节码文件. Java被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编译.Java虚拟机让这个变为可能,因为它知道底层硬件平台的指令长度和其他特性. 2.  JDK和JRE的区别是什么? Java运行时环境(JRE)是将要执行Java程序的Java虚拟机.它同时也包含了执行app

.NET面试常考算法

1.求质数    质数也成为素数,质数就是这个数除了1和他本身两个因数以外,没有其他因数的数,叫做质数,和他相反的是合数,    就是除了1和他本身两个因数以外,还友其他因数的数叫做合数. 1 namespace ConsoleApp 2 { 3 class Program 4 { 5 static void Main(string[] args) 6 { 7 long i; 8 while (true) 9 { 10 Console.Write("请输入要计算的质数(0退出):");

网络基础面试常考知识点

1.  OSI,TCP/IP,五层协议的体系结构,以及各层协议 OSI分层 (7层):物理层.数据链路层.网络层.传输层.会话层.表示层.应用层. TCP/IP分层(4层):网络接口层. 网际层.运输层. 应用层. 五层协议 (5层):物理层.数据链路层.网络层.运输层. 应用层. 每一层的协议如下: 物理层:RJ45.CLOCK.IEEE802.3 (中继器,集线器) 数据链路:PPP.FR.HDLC.VLAN.MAC (网桥,交换机) 网络层:IP.ICMP.ARP.RARP.OSPF.IP

面试常考HTTP协议知识点

协议简介 1. 应用层协议, 一般以TCP为基础,数据收发通过TCP实现: 2. 一次性连接.服务器与客户端的每次连接只处理一个请求,下次请求重新建立连接: 3. 无状态协议.服务器不保留与客户交易时的状态,减轻记忆负担,较快响应速度: 4. 默认端口号80,常用请求方法GET/POST: 工作过程 1. 客户与服务端建立连接:(基于TCP的连接) 2. 客户发起请求:(各种方法) 3. 服务器接受请求,返回相应资源: 4. 客户与服务器断开连接. 协议格式 GET/POST 请求的URL HT