C和指针 (pointers on C)——第六章:指针(下)习题

有一定的难度,作者只做了前三题!

题目请见 http://download.csdn.net/download/wangpegasus/5701765

1、

char *find_char(char const *source, char const *chars)
{
	char *ptr;
	if(source != NULL && chars != NULL)
	{
		for (; *source != '\0'; source++)
		{
			for (ptr = (char *) chars; *ptr != '\0'; ptr++)
			{
				if (*ptr = * source)
				{
					return (char *)source;
				}
			}
		}
	}
	return NULL;
}

2、

char *match(char *string, char *sub)
{
	while (*sub != '\0')
	{
		string++;
		sub++;
		if (*string != *sub)
		{
			return NULL;
		}
	}
	return string;
}
int del_substr( char * str, char const  *substr)
{
	char * ptr;
	ptr = NULL;
	if ( str == NULL && substr == NULL)
	{
		return 0;
	}
	for (; *str != '\0'; str++)
	{
		ptr = match(str, (char *)substr);
		if (ptr != NULL)
		{
			break;
		}
	}
	while (*str++ = *ptr++)
	{
		;
	}
	return 1;
}

3、

void reverse_string(char *string)
{
	char temp;
	char * last;
	last = string;
	if (string != NULL)
	{
		while (*last != '\0')
		{
			last++;
		}
		last--;
		while (string > last)
		{
			temp = *last;
			*last = *string;
			*string = temp;
			string--;
			last++;
		}
	}
}

C和指针 (pointers on C)——第六章:指针(下)习题,布布扣,bubuko.com

时间: 2024-10-06 00:43:46

C和指针 (pointers on C)——第六章:指针(下)习题的相关文章

“全栈2019”Java第十六章:下划线在数字中的意义

难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第十六章:下划线在数字中的意义 下一章 "全栈2019"Java第十七章:赋值运算符和算术运算符 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复"Java学习小组&q

第六章 指针6.2 6.3字符串中查找的两个版本

int find_char(char **strings, char ch) { char *string; while ((string = *strings++) != NULL) { while (*string != '\0') { if (*string++ == ch) { return TRUE; } } } return FALSE; } 无副作用版本,适合多次查找. int find_char(char **string, char ch) { while (*string !

指针(选自-第六章——C Primer)

未初始化和非法的指针: 例如:int *a: *a=10: 在创建一个指针变量时没有初始化,所以不确定a会指向哪里,所以只后我们没有办法预测这个10将会存储在什么地方. 所以在对指针进行间接访问前必须十分小心,需要确保它们已经初始化. NULL指针 是一个特殊的指针变量,表示不指向任何东西,要使一个指针变量为NULL可以给它赋零值. 对NULL指针进行解引用操作是非法的,因为他不指向任何东西.

C和指针 (pointers on C)——第六章:指针(上)

第六章 指针 这一章,就明显触痛初学者敏感之处了.我也是在一段时间不用C以后就会对这一部分生疏,好吧,其实是对高级指针那块生疏. 当然这一部分总有很多借鉴之处,比如数组范围的问题等,要不我也不会大夏天的这么虐自己看这种书. 总结: 指针变量的值并非它所指向的内存位置所存储的值,而是保存了指向的变量的地址.需要通过间接访问符*来访问指向的变量的值. 单单声明一个指针,而并不进行初始化,是不会分配内存的.所以在指针执行间接访问之前,指针必需进行初始化. 要么指向某个变量.要么去malloc一个内存.

深入理解 C 指针阅读笔记 -- 第六章

Chapter6.h #ifndef __CHAPTER_6_ #define __CHAPTER_6_ /*<深入理解C指针>学习笔记 -- 第六章*/ typedef struct __person { char* name; char* title; unsigned int age; }person; /*结构体内存的释放问题*/ void __struct_memory_test(); #endif Chapter6.cpp #include "Chapter6.h&quo

C和指针 (pointers on C)——第一章:快速上手

不太苟同大多数人认为很多程序员没有几个学C学的好的,那就多看看这本书. 本人只是作为读书笔记来写.有时候会附带一些题目和解答. 开通此类专栏,既为敲砖引玉,也为自勉,望鼓励! 第一章:快速上手 我每次都是复习的来写.我想是这一章,哪怕是上手也需要有一定的C基础. 总结:提出了stdio.h中一些基本的函数,如scanf(),printf(),getchar(),putchar(),gets(),puts()等io函数. 关于NULL和NUL的区别也说了一些. NUL也就是字符串中的截尾字符'\n

C和指针 (pointers on C)——第二章:基本概念

第二章 基本概念 不良的代码风格,不良的文档直接导致软件开发及维护代价高昂. 其实一个人总有他自己的代码风格,主要是坚持一种合理的风格,让大家容易读懂. 总结: C是一种对大小写非常敏感的语言,所以Abc,abc这是两个不同的标识符.长度没有限制,但是31个字符以后会自动忽略. 程序的起点是main函数,绝大多数环境使用堆栈来存储局部变量和其他数据. 注释必需以/* 开始,*/结束,不允许嵌套.注释将被预处理器去除. 标识由字符数字和下划线组成,不能以数字开头,大写和小写不同. 关键字不能作为标

C语言学习书籍推荐《C和指针 Pointers On C》下载

<C和指针 POINTERS ON C>提供与C语言编程相关的全面资源和深入讨论.本书通过对指针的基础知识和高 级特性的探讨,帮助程序员把指针的强大功能融入到自己的程序中去.  全书共18章,覆盖了数据.语句.操作符和表达式.指针.函数.数组.字符串.结构和联合等几乎所有重要的C编程话题.书中给出了很多编程技巧和提示,每章后面有针对性很强的练习,附录部分则给出了部分练习的解答.  本书适合C语言初学者和初级c程序员阅读,也可作为计算机专业学生学习c语言的参考. 下载地址:点我 编辑推荐 本书通

第六章:数组、指针、与字符串

主要内容: 1.数组 2.指针 3.动态存储分配 4.指针与数组 5.指针与函数 6.字符串 内存地址: 1.内存地址的访问方式 通过变量名访问 通过地址访问 2.& var; //表示var在内存中的起始地址 void类型的指针就相当于一个hook(钩子),可以指向任何数据类型. 1.const 数据类型 * ptr //指向常量的指针 常量指针不可以改变所指对象的值,但是可以指向另外的对象(ptr本身可以改变). 2.数据类型 * const ptr //指针常量 指针本身不能改变,只能指向