【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;
}


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

相关文章推荐

面试题------字符串翻转I am a student

题目描述:编写函数,输入一个英文的句子,翻转句子中单词的顺序。要求单词内字符的顺序不变,单词间空格符数量不变。 例如:"I am a student."反转成"student. a am I"。 ...

【C语言】”student a am i “和“we are happy”

1.有一个字符数组的内容为 : “student a am i”, 请你将数组的内容改为”i am a student”.

C语言笔试题(9)——strcpy函数与strlen函数

1、关于strcpy的找错题: void test1(void) {   char string[10];   char* str1 = "0123456789";   strcpy( st...

C语言实现谷歌面试题:写一个函数返回参数二进制中 1 的个数

写一个函数返回参数二进制中 1 的个数 比如: 15       0000 1111       4 个 1 方法一:参数为整形参数,首先需要将整形参数转换为二进制序列,需要对这个参数进行模2除2。参...

2016 C语言面试题——字符串函数的实现

C语言各类字符串函数的实现开学就要开始找工作了,我觉得这些函数被问到的几率还是很大的,所以在这里与大家分享strlen函数原型:#include unsigned int strlen (char ...

剑指Offer 面试题11:数的整数次方(Leetcode50. Pow(x, n))【C库函数pow模拟】题解

面试题:数的整数次方 题目:实现函数double Power(double base, int exponent), 求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。 ...

部分C库函数重写(经典c/c++面试题)

#include #include #include //////////////////////////////////////////////////// //Convert cha...

腾讯在线笔试题-把字符串“I am from china.”反转成为“I am from china.”,以及把整个字符串逆序。

注:首先得说一下腾讯2016年在线笔试题的最后一个大题出题的人大意出错了,他举的例子是:字符串“I am from china.”反转成为“I am from china.”  但是他说的是表达符号又...

C语言文件读写标准I/O库函数的相关操作

C语言文件的相关操作文件的介绍文件的打开和关闭字符读写函数字符串读写函数格式化的读写函数二进制的读写函数文件定位标准I/O是会分配缓存的。文件的介绍:1:文件的概念所谓“文件”是指一组相关数据的有序集...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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