【C语言】【面试题】【笔试题】使用有限空间,不使用库函数,逆置“student a am i”

原创 2016年05月30日 15:02:27
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
void reverse_arr(char *left, char *right)
{
	assert(left);
	assert(right);
	while (left < right)
	{
		char tmp = *left;
		*left = *right;
		*right = tmp;
		left++;
		right--;
	}
}
int my_strlen(const char *str)
{
	int count = 0;
	while (*str++)
	{
		count++;
	}
	return count;
}
void reverse(char arr[])
{
	char *pstart = arr;//数组和指针结合使用,把数组的首地址给指针变量pstart
	char *pend = arr + my_strlen(arr) - 1;//把数组最后一个元素的地址给指针变量pend
	char *pcur = NULL;//用来做中间变量,传递地址的
	if (arr == NULL || arr[0] == '\0')//判断首地址是否为空,字符串是否为空,如果是直接结束
	{
		return;
	}
	reverse_arr(pstart, pend);//逆置数组
	while (*arr)//控制数组里面的内容,遍历判断
	{
		pcur = arr;
		while (*arr != '\0'&&*arr != ' ')//找空格确定一个整体的单词,然后逆置
		{
			arr++;
		}
		pend = arr - 1;
		reverse_arr(pcur, pend);
		if (*arr == ' ')
			arr++;
	}
}
int main()
{
	char arr[] = "student a am i";
	reverse(arr);
	printf("%s\n", arr);
	system("pause");
	return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

经典16道:嵌入式C语言笔试题

1.用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)      #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL   我在...
  • you_shou
  • you_shou
  • 2016年09月21日 10:01
  • 4239

曾经进公司面试的C语言有关指针和数组的笔试题

原题如下: #include int main(void) { int i , j ; unsigned int Array_A[32]; unsigned int *pPointer; ...
  • morixinguan
  • morixinguan
  • 2016年02月06日 20:51
  • 941

C语言:字符串逆置(循环法,递归写法)

环境:Windows8,Visual Studio 2013 语言:C语言 字符串逆置: 将一个一直字符串的顺序逆序排放保存于同一个空间内,长度,内存地址均不改变方法一://while循...
  • sinat_36101354
  • sinat_36101354
  • 2017年01月12日 22:46
  • 1354

c语言面试题集-单片机) (转载+本人测试)

c语言面试题集(单片机) 1.预处理器(Preprocessor) 1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER...
  • penglijiang
  • penglijiang
  • 2013年02月23日 23:35
  • 7599

C语言经典笔试题(一)

C语言经典笔试题(一)
  • black_yu
  • black_yu
  • 2017年01月09日 19:30
  • 791

c语言笔试题总结1

c语言笔试题总结,陆续更新。
  • jiangwei0512
  • jiangwei0512
  • 2016年02月16日 11:40
  • 5546

【C语言】有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student"

我的思路是,首先将这个字符串整个逆序,再将其中的每一个单词再次逆序,得到最终结果,刚开始没有思路的时候在纸上画画,有助于编程,这是我近期学习C语言的心得。 接下来我们来编程解决这个问题。 #inclu...
  • pointer_y
  • pointer_y
  • 2016年05月21日 00:18
  • 822

C语言的笔试面试题(题目)

C语言笔试面试题 一、基础知识及概念题: 1、局部变量能否和全局变量重名?(华为C笔试) 类似题1:全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么? 2、关键字const什么含义...
  • u011032334
  • u011032334
  • 2014年12月12日 18:46
  • 791

c语言基础面试题

原文: c语言基础面试题 链接:http://bbs.51cto.com/thread-811556-1.html 1. 写一个函数判断当前系统的字节序。 2. 如何用c语言执...
  • xww810319
  • xww810319
  • 2014年01月03日 10:51
  • 3673

Linux C 面试题总结

1、进程和线程的区别,及优劣性比较进程和线程的主要差别在于它们是不同的操作系统资源管理方式。进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径...
  • jsh13417
  • jsh13417
  • 2014年10月07日 23:00
  • 7124
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【C语言】【面试题】【笔试题】使用有限空间,不使用库函数,逆置“student a am i”
举报原因:
原因补充:

(最多只允许输入30个字)