C语言提高 (2) 第二天 用指针对字符串进行操作

2 昨日回顾

p++:

(把地址转换成整型 加上它所指向的数据的大小

3指针成立条件和间接赋值

条件一:有两个变量 其中至少一个是指针

条件二:建立关联

条件三:间接操作

4间接操作的例子

5间接操作的内存四区图

6 指针做为函数参数的意义

7指针的总结

8字符串-指针和数组名的区别

  1. 1.      sizeof
  2. 2.      strlen (遇到\0结束

答:指针是指向可变的指针,数组名是一块常量内存地址。

9中午回顾

10字符串内存四区图

11字符串操作

12 C语言中的0

// 0x0000 0000 ---> NULL    === 0 ==== ‘\0’

  ‘0’ ===> 48

看一下NULL的定义:

13查找子字符串的do-while和while模型

do while模型:

while模型:

do while:

14 课堂答疑

1为什么用fprintf 不用printf

因为有时候有些程序会把printf标准输出会掉,一般只会屏蔽标准输出,而不会屏蔽stderr

2 C语言没有异常捕获

// 面向对象的才有

15字符串去掉空白字符

// 两头堵模型

16字符串两头堵模型练习

17逆转字符串与递归

字符串翻转:

使用栈和递归的方法编写:(好机智啊

原文地址:https://www.cnblogs.com/eret9616/p/10368507.html

时间: 2024-10-06 04:00:38

C语言提高 (2) 第二天 用指针对字符串进行操作的相关文章

C语言提高之——从结构和指针看数据结构链表

通过组合结构和指针可以创建强大的数据结构.该博客只是针对了单链表来看的. 链表说明: 链表的每一个结点都是一个结构体,其中有两个元素分别是:1.指向下一个结点的指针(link)和该结点数据(value).其中需要一个根指针指向第一个结点(root). 插入数据: 初始代码: 插入的思想是通过比较当前结构的数据和要插入的数据(new_value)大小,从而判断插入位置.首先需要定义两个指针变量,一个指向当前结构(current),一个指向当前结构的前一个结构(previous).当判断好位置之后需

网易云课堂_程序设计入门-C语言_第七周:指针与字符串_2GPS数据处理

2 GPS数据处理(6分) 题目内容: NMEA-0183协议是为了在不同的GPS(全球定位系统)导航设备中建立统一的BTCM(海事无线电技术委员会)标准,由美国国家海洋电子协会(NMEA-The National Marine Electronics Associa-tion)制定的一套通讯协议.GPS接收机根据NMEA-0183协议的标准规范,将位置.速度等信息通过串口传送到PC机.PDA等设备. NMEA-0183协议是GPS接收机应当遵守的标准协议,也是目前GPS接收机上使用最广泛的协议

「C语言回顾之旅」第二篇:指针详解进阶

说明: 第一篇回顾了指针的基本概念以及基本使用,因此对指针也有了一个较为清晰的思路,但实际上第一篇关于指针的内容是不太容易忘记的.这是第二篇中的内容是比较容易混淆,但对于指针的进一步学习也是非常重要的. 一.指向函数的指针 1.函数指针 ·函数指针即指向函数的指针,函数指针值为函数的入口地址,通过使用该指针,即可以使用该函数: ·编写一个程序返回两个数的最大值,通过函数指针调用函数: a.main函数代码如下: #include<stdio.h> int max(int *, int *);

C语言其实不简单:数组与指针

之前在写C的时候,没怎么留意数组,就这么定义一个,然后颠来倒去的使用就行了.不过后来碰到了点问题,解决后决定写这么一篇博客,数组离不开指针,索性就放一起好了. 现在我定义了一个数组:int cc[10]; 围绕这个数组有好几种指针:cc, cc+1, &cc[0], &cc, &cc+1等等.你知道它们都是什么含义吗?试试运行以下带代码: #include <stdio.h> int main() {     int cc[10];     printf("%

[C语言]进阶|指针与字符串

------------------------------------------------------------------------------------ 回顾:[C语言]指针与字符串 指针的使用: /** * main.c by weiChen in 2015-5-4 */ #include <stdio.h> //定义函数体,使在main方法中能调用 void swap(int *pa, int *pb); void minmax(int c[], int len, int

【示例】C语言中利用数组存放函数指针

C语言中利用数组存放函数指针,增加函数使用的灵活性.使用时只需提供数组索引,即可调用不同函数. 预备知识: 1.指向函数的指针 一个函数在编译时被分配一个入口地址,这个地址就被称为函数的指针. 例如: int max(int,int); // 声明函数,比较两数大小 int (*p)(); //声明指向函数的指针变量 p=max; //将函数max的入口地址赋给指针变量p int c=(*p)(a,b); //调用函数 2.函数指针作为函数参数 该例子中每次给process函数不同实参(函数名)

《你必须知道的495个C语言问题》笔记--数组和指针

一.如何动态分配多维数组? 1.分配一个指针数组,然后把每个指针初始化为动态分配的行 代码如下: int **array = (int **)malloc(ROW * sizeof(int*)); int i = 0; for(i=0; i<ROW; i++){ array[i] = (int *)malloc(COL * sizeof(int)); } 2.让数组的内容连续,但在后来重新分配行. 代码如下: int **array = (int**)malloc(ROW * sizeof(in

C语言第十二回合:再谈指针

C语言第十二回合:再谈指针 [学习目标] 1.        指针数组 2.        数组指针 3.        函数指针 ( 1 )指针数组 指针数组:首先它是一个数组,数组的元素都是指针,数组占多少个字节由数组本身 决定.它是"储存指针的数组"的简称 如: 定义数组名为ptr,其中包含10个指向int类型的数据的指针 int *ptr[ 10];  //指针数组,int*修饰数组的内容 [程序] #include <stdio.h> void print_err

C语言优化实例:消除多级指针的间接访问

如果一个多层次的数据结构达到两级或者两级以上,举例如下: struct A{ int array_member[100]; //其他数据成员 }; struct B{ struct A *a_ptr; //其他数据成员 } 那么通过B类型的指针b_ptr访问A类型的array_member的某一个元素array_member[0]则需要使用b_ptr->a_ptr->array_member[0]这种多级指针的形式.如果一个函数中多次用到这个变量的话,可以采用一个临时变量保存这个多级指针:in