c语言ch存放输入的字符,C语言ch通过指针引用字符串.ppt

C语言ch通过指针引用字符串

char string[] = "I love China!"; 等价于: char string[20]; strcpy(string, "I love China!"); "I love China!" 是常量字符串 const char *p; //p是指针变量,p指向的目标空间的内容不可变化 char * const p; //p是指针常量,p的值不可变,但它指向目标的值可变 while(*srcStr != '\0') 推荐=> while(*srcStr != 0) ('\0'的ASCII代码为0)=> while(*srcStr) 不推荐 [1]:char *destCopy把dest的首地址保存下来,while循环之后dest指向字符串末尾的’\0’ [2][3]:assert的作用是计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。 使用assert的缺点是,频繁的调用会极大的影响程序的性能,增加额外的开销。 在调试结束后,可以通过在包含#include 的语句之前插入 #define NDEBUG 来禁用assert调用,示例代码如下: #include #define NDEBUG #include * * * * 上一节我们学到了 指针与二维数组 a[i]<=>*(a+i) a[i][j]<=>*(*(a+i)+j) a、a+i、*(a+i)、a[i]、*(*(a+i)+j)等怎么理解 行指针与列指针 如何定义一个指向二维数组的指针 行指针:指向一维子数组,int (*p)[10]; 列指针:指向元素,int *p; 如何向函数传递一个指向二维数组的指针 * * 第8章 善于利用指针 8.1 指针是什么 8.2 指针变量 8.3 通过指针引用数组 8.4 通过指针引用字符串 8.4.1 字符串的引用方式 8.4.2 字符指针作函数参数 8.4.3 使用字符指针变量和字符数组的比较 8.5 指向函数的指针 8.6 返回指针值的函数 8.7 指针数组和多重指针 8.8 动态内存分配与指向它的指针变量 8.9 有关指针的小结 字符指针字符串(char *string) 字符串常量 strcpy源码 * * * * 回忆字符串 一串以'\0'结尾的字符在C语言中被看作字符串 字符串常量是用双引号括起的以‘\0’结束的一串字符。 在程序开始运行时分配在全局数据区的文字常量区,存储在无名数组中。 相同字符串常量只有一个副本。 C语言表示字符串的两种表示法 字符数组 字符指针 * * 代码区(code area) 操作系统内核区 全局数据区 堆区heap 栈区stack 文字常量区 未初始化静态变量区 已初始化静态变量区 低址 数据区 字符串常量 没有初始化的全局变量和静态变量 初始化的全局变量和静态变量 malloc() free() 局部变量 函数的二进制码 内存分配 * * char[] string 例 例8.16 int main() { char string[] = "I love China!"; printf("%c\n", string[7]); printf("%s\n", string); } 运行时输出: C I love China! * * char* string 例 例8.17 int main() { char *string = "I love China!"; printf("%s\n", string); } 把存放字符串的无名数组的首地址赋给string。 char *string = "I love China!"; 等价于: char *string; string = "I love China!"; * * 练习 下面各语句中,能正确进行字符串赋值操作的语句是( ) ?① char s[5] ={"ABCDE"};??????????? ② char s[5] ={'A','B','C','D','E'}; ③ char *s;s="ABCDE";?????????? ④ char *s;scanf("%s", s); ⑤char s[8]; s = "ABCDE"; Q: printf("%s\n", "abc"+1); 输出:bc ③ * * 8.4.2 字符指针作函数参数 例8.20 用函数调用实现字符串的复制。 (1) 用字符数组作参数。 * * strcpy函数 /* Copies the string src into the spot specified by dest; ? ass

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我会为您详细介绍 scanf 输入整形、字符型、整形数组、字符串、整形数组指针字符串指针的书写规范。 1. 输入整形: 在C语言中,使用 `scanf` 函数可以输入整形数据。输入整形数据的格式控制符为 `%d`,而输入的数据需要使用取地址符 `&` 获取变量的地址,将输入的数据存储到该地址中。例如: ```c int num; scanf("%d", &num); ``` 2. 输入字符型: 在C语言中,使用 `scanf` 函数可以输入字符型数据。输入字符型数据的格式控制符为 `%c`,而输入的数据需要使用取地址符 `&` 获取变量的地址,将输入的数据存储到该地址中。例如: ```c char ch; scanf("%c", &ch); ``` 需要注意的是,`scanf` 函数会自动读取并忽略掉输入缓冲区中的空格、换行符等空白字符,因此可能会导致一些意外的输入结果。 3. 输入整形数组: 在C语言中,要输入整形数组,可以使用循环结构和 `scanf` 函数配合使用。使用循环结构,将 `scanf` 函数反复执行,每次输入一个整形数据,并存储到数组中。例如: ```c int arr[5]; for(int i = 0; i < 5; i++) { scanf("%d", &arr[i]); } ``` 4. 输入字符串: 在C语言中,要输入字符串,需要使用字符型数组来存储。在 `scanf` 函数中,可以使用 `%s` 格式控制符来指定输入的是字符串。例如: ```c char str[20]; scanf("%s", str); ``` 需要注意的是,`scanf` 函数会自动读取并忽略掉输入缓冲区中的空格、换行符等空白字符,因此可能会导致一些意外的输入结果。此外,为了避免输入字符串长度超过数组的大小,建议使用指定最大输入长度的方式来输入字符串,例如: ```c char str[20]; scanf("%19s", str); ``` 这里,`%19s` 用来指定最大输入长度为19,避免了输入字符串长度超过数组大小的问题。 5. 输入整形数组指针: 在C语言中,可以使用指针来访问整形数组,并通过指针输入整形数组的数据。例如: ```c int arr[5]; int *p = arr; for(int i = 0; i < 5; i++) { scanf("%d", p++); } ``` 这里,`p` 指向整形数组的第一个元素,每次执行 `scanf` 函数后,将指针 `p` 向后移动一个单位,指向下一个数组元素。 6. 输入字符串指针: 在C语言中,可以使用指针来访问字符串,并通过指针输入字符串的数据。例如: ```c char str[20]; char *p = str; scanf("%s", p); ``` 这里,`p` 指向字符型数组 `str` 的第一个元素,通过 `scanf` 函数输入字符串数据后,将字符串数据存储到 `str` 数组中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值