【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"。 ...

[笔试题] 不使用库函数sqrt实现求一个数的平方根

看到这题第一想法就是二分,同时很快就

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

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

44. 腾讯面试题: 使用函数的参数指针,分配内存空间问题

面试官写了一段程序: void fun(int* a) { a = new int[100]; cout
  • hhh3h
  • hhh3h
  • 2014年05月28日 20:21
  • 1396

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...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【C语言】【面试题】【笔试题】使用有限空间,不使用库函数,逆置“student a am i”
举报原因:
原因补充:

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