C语言指针教程:输入字符串转换数字串

需积分: 32 0 下载量 105 浏览量 更新于2024-08-22 收藏 733KB PPT 举报
"C语言指针课程资源,包含习题11,要求输入字符串并转换其中的数字串至数组" 本资源主要涉及C语言中的指针概念及其应用,特别是指针在处理字符串和数组中的作用。在提供的代码示例中,程序设计了一个功能,即从用户输入的字符串中提取出所有的数字串,并将其转换为整数存储到数组中。以下是相关知识点的详细说明: 1. **指针基础** - **指针的概念**:指针是一个变量,它存储了另一个变量的内存地址。通过指针,我们可以间接访问和修改该地址处的值。 - **指针对象**:当一个指针变量被赋值为某个变量的地址时,它就指向了那个变量。 - **间接存取**:使用指针变量可以实现间接存取,即不直接通过变量名而是通过指针来操作变量的值。 2. **指针变量的定义** - **定义格式**:`类型标识符*变量名`,例如 `int*ptr` 表示 `ptr` 是一个指向整型变量的指针。 - **注意事项**:在定义指针变量时,"*" 用来声明变量是指针类型,而指针变量的名字是紧跟其后的标识符,如 `ptr`,而不是 `*ptr`。 3. **指针变量的类型**:指针变量的类型决定了它可以指向哪种类型的数据,例如,`int*` 指针可以指向整型变量,`char*` 可以指向字符型变量。 4. **数组与指针的关系** - **数组的指针**:数组名实际上是数组首元素的地址,因此,数组名可以被当作指针来使用,指向数组的第一个元素。 - **指针与字符串**:在C语言中,字符串实质上是字符数组,字符串的指针通常指向字符串的第一个字符。 5. **示例代码解析** - `char s[128]`:定义一个足够大的字符数组 `s` 来存储用户输入的字符串。 - `for` 循环遍历字符串,`if(*ps>='0' && *ps<='9')` 判断当前字符是否为数字,如果是,将其转换为数值并累加到 `n` 中。 - 当遇到非数字字符时,如果之前有数字(`n>0`),将 `n` 存入数组 `a` 并更新索引 `i`。 - 最后,遍历数组 `a` 打印所有提取的数字。 6. **函数指针**:虽然资源未直接涉及,但在C语言中,指针也可以指向函数,这在函数回调、参数传递等方面非常有用。 7. **教学重点与难点** - **重点** 包括指针的定义、运算、数组、函数和字符串与指针的关系以及指针作为函数参数的使用。 - **难点** 主要是理解和掌握指针的概念、指针变量的引用以及指针与数组、字符串、函数的交互。 这个资源适合想要深入理解C语言指针特性的学习者,通过习题11,可以实践指针在处理字符串中的应用,进一步巩固指针的相关知识。