• 沒有找到結果。

指针的艺术 - 万水书苑-出版资源网

N/A
N/A
Protected

Academic year: 2021

Share "指针的艺术 - 万水书苑-出版资源网"

Copied!
16
0
0

加載中.... (立即查看全文)

全文

(1)5 指针与字符串. 5-1. 字符串指针. 5-2. 常用的库函数. 5-3. 调试题. 5-4. 程序实战.

(2) 80 80. Part 1 C 程序语言篇. 字符串指针. 5-1. 字 符 串 是 字符 的 集 合, 可 利 用数 组 ( 指针 常 量) 或 指 针 变量 来 表 示。 char *str1="Apple iPod";. 表 示 str1 指 向 字 符 串 的 第一 个 字 符 'A', 如 图 5-1 所 示 。 str1 A. p. p. l. e. i. P. o. d. \0. 图 5-1. 也 可 使 用 数组 的 表 示法 , 如 下所 示 : char str2[10]=”Apple iPod”;. 以 图 形 表 示如 图 5-2 所 示 。 str2 A. p. p. l. e. i. P. o. d. \0. 图 5-2. str2 是 数 组 名,表 示 此数 组 第 一个 元 素 的地 址(相 当 于 &str2[0]),str2+1 表 示 数 组 第 二个 元 素 的地 址(相 当 于 &str2[1]),…… ,依 此类 推,str2+10 则 是 空 字 符 ( '\0') 的 地 址 。 字 符 串 的 最 后 都 有 一 个 空 字 符 ( '\0'), 作 为 字 符 串 的 结 束 点 , 若 缺 少它 , 将 会产 生 错 误的 答 案 。 还 要 注 意 的是 , str1 是 指 针 变 量 , 而 str2 是 指 针 常 量 。 所 以 str2 不 可 以 使 用 ++( 自 增 ) 和 --( 自 减 ) 运 算 符 。 首 先 , 利 用 指 针 变 量 指 向 一 个 字 符 串 , 并 以 字 符 的 格式 将 字 符串 输 出 ,请 参 阅 范 例 string3。 范 例 string3 /* string3.c */ #include <stdio.h> #include <conio.h> int main() { char *str = "Apple iPod"; int i; printf("字符串 str 为: "); for(i=0; *str!='\0'; i++) { printf("%c", *str); str++; } getch(); return 0; }. 输出结果 字符串 str 为 : Apple iPod.

(3) Chapter 5 指针与字符串. 程 序 利 用 循 环 输 出 目 前 指 针 所 指 向 的 字 符 , 直到 空 字 符 ( '\0') 为 止 。 上 例 的 字 符 串 也可 以 使 用数 组 的 方式 加 以 输出 。 请参 阅 范 例 string4。 范 例 string4 /* string4.c */ #include <stdio.h> #include <conio.h> int main() { char *str = "Apple iPod"; int i; printf("字符串 str 为: "); for(i=0; str[i]!='\0'; i++) printf("%c", str[i]); getch(); return 0; }. 输 出 结 果 同范 例 string3。 其 实 最 方 便 的 方法 是利 用 %s, 直 接 将 字符 串 加 以 输 出 。 如 范 例 string5 所 示 。 范 例 string5 /* string5.c */ #include <stdio.h> #include <stdlib.h> int main() { char *str1 = "Apple iPod"; char str2[] = "Apple iPod"; printf("字符串 str1 为 %s\n", str1); printf("字符串 str2 为 %s\n", str2); system("PAUSE"); return 0; }. 输出结果 字符串 str1 为 Apple iPod 字符串 str2 为 Apple iPod. 要 注 意 的 是, 此 时 变量 给 予 的是 数 组 名, 如 str1 和 str2。 因 为 数 组 名表 示 数组第一个元素的地址,所以会从此地址一直打印到字符串的结束点(空字符 '\0')。 若将 上 一 范例 的 str2 数 组 元 素 的 个 数修 改为 10, 其 结 果 为何 , 请 参阅 范 例 string7。 范 例 string7 /* string7.c */ #include <stdio.h> #include <stdlib.h> int main() { char *str1 = "Apple iPod"; char str2[10] = "Apple iPod";. 81.

(4) 82 82. Part 1 C 程序语言篇. printf("字符串 str1 为 %s\n", str1); printf("字符串 str2 为 %s\n", str2); system("PAUSE"); return 0; }. 输出结果 字符串 str1 为 Apple iPod 字符串 str2 为 Apple iPod+. 在 输 出 结 果中 , str2 的 字 符 串 是错 误 的 ,因 为 分配 给 str2 的 空 间 不 足 , 使 得 它 无 法 存 放 空 字 符 ( '\0')。 这 也 就 是 为 什 么 常 将 数 组 的 元 素 的 个 数 省 略 , 而 由 系 统 去 决定 的 原 因。 除了在定义字符串变量时,直接给予一个字符串外,也可利用其他的方式 得 到 。 请 参阅 范 例 string10。 范 例 string10 /* string10.c */ #include <stdio.h> #include <stdlib.h> int main() { char *str1 = "Learning pointer now!"; char str2[] = "Go ahead"; char *str3; char str4[20]; str3 = "I want to buy a iPod\n"; printf("C or C++: "); scanf("%s", str4); printf("\n%s\n", str1); printf("%s\n", str2); printf("%s\n", str3); printf("Learning %s now\n", str4); system("PAUSE"); return 0; }. 输出结果 C or C++: C Learning pointer now Go ahead I want to buy a iPod Learning C now. str1 和 str2 都 是 在 定义 时 指定 初 值,str4 数 组 是 以 键 盘 输 入的 方 式 得到 一 个 字 符 串 , 而 str3 指 针 变 量则 是 以 赋值 方 式 得到一 个 字 符 串。 注 意 , 若 将此 范 例 的 str3 改 为 数 组, 而 str4 以 指 针 变 量 表示 , 则 会有 错 误 信 息 产 生 ,如 下 所 示。.

(5) Chapter 5 指针与字符串 char str3[20]; char *str4;. 为 什 么 呢 ?因 为 str3 是 一 个 数 组 ,它 是 指 针常量 , 所 以 str3 已 在 固 定 的地 址 , 不 可 以 再 指 定 一 个 字 符 串 地 址 给 它。 str4 是 一 个 指 针 变 量 , 不 可 以 由 输 入 的 方 式 来 完成 指 定 的操 作 。 这些 都 是 大家 很 容易 出 错 的 地方 。. 5-2. 常用的库函数. 通 常 谈 到 字 符 串 的 操作 , 不 外 乎 计算字 符 串 长 度 ( string length), 进 行 字 符 串 复 制( string copy) 、字 符 串 连 接( string concatenate) 、字 符 串 比 较( string compare) 。要完 成 这 些动 作,最 方便 的 是 调用 字符 串 的 库 函数,但 要 包 含 string.h 头 文 件 , 因为 这 些 字符 串 库 函数 的 原 型都 在 这 个 头 文 件 中。 以下的范例除了调用字符串的库函数外,也利用字符串指针自行编写程 序,以模拟这些库函数的功能,希望大家能学到更多有关字符串指针的操作方 式 。 让 我 们先 从 计 算字 符 串 的长 度 开 始 。. 5-2-1. 计 算字 符 串 的 长 度. 字 符 串 的 长度 表 示 此字 符 串 有多 少 个 字符,但不包 括 空 字 符( '\0')。计算 字 符 串 长 度 的库 函 数 为 strlen, 其 语 法 如 下: strlen(str1);. 表 示 计 算 str1 字 符 串 共 有 多 少 个 字 符 , 但 不 包 括 空 字 符 。 请 参 阅 范 例 stringLength。 范 例 stringLength /* stringLength.c */ #include <stdio.h> #include <string.h> int stringLength(char *); int main() { int length=0; char *str = "Apple iPod"; printf("The length of \"%s\" is %d\n\n", str, strlen(str)); /* using my method */ length = stringLength(str); printf("The length of \"%s\" is %d\n", str, length); system("PAUSE"); return 0; } int stringLength(char *p) { int t=0;. 83.

(6) 84 84. Part 1 C 程序语言篇. while(*p !='\0') { t++; p++; } return t; }. 输出结果 The length of "Apple iPod" is 10 The length of "Apple iPod" is 10. 在 stringLength()函 数 中,若 *p 不 为 空 字 符( '\0'),则 将 变 量 t 加 1,之 后 再 把 p 指 针 移 到 下 一 个字 符 的 地址。上述 的 操 作将持 续 进 行,直 到 *p 为 空 字 符 才 结 束 , 因 为空 字 符 是字 符 串 的结 束 字 符 。. 5-2-2. 字 符串 的 复 制. 字 符 串 复 制的 库 函 数 为 strcpy, 其 语 法 如 下 : strcpy(str1, str2);. 表 示 从 str2 字 符 串 的 第 一个 字 符 ,逐 一 地 复制到 str1 字 符 串 。注 意 , 第一 个 参 数 str1 是 接 收 者 , 第二 个 参 数 str2 是 给 予者 。 请 看 范 例 stringCopy。 范 例 stringCopy /* stringCopy.c */ #include <stdio.h> #include <string.h> #include <stdlib.h> int main() { char *s = "iPhone"; char t[80] = " "; printf("Before strcpy(t, s)\n"); printf("s = %s\n", s); printf("t = %s\n", t); printf("After strcpy(t, s)\n"); strcpy(t, s); printf("s = %s\n", s); printf("t = %s\n", t); system("PAUSE"); return 0; }. 输出结果 Before strcpy(t, s) s=iPhone t= After strcpy(t, s) s=iPhone t=iPhone. 若 t 原 来 就 有字 符 串,则 此字 符 串 会被 s 字 符 串所 覆 盖,用 户 要特 别 小 心使 用 , 以 免 数据 遗 失 。字 符 串 的复 制 动 作, 如 图 5-3 所 示 。.

(7) Chapter 5 指针与字符串 s. i. P. h. o. n. e. \0. t 图 5-3. 注 意 ! t 字 符 串 要 有 足够 的 空 间来 容 纳 s 字 符 串。 若 将 范 例 stringCopy 中 的 char t[80] = " ";. 改为 char *t;. 将 会 有 错 误产 生。因 为 t 是 指 针 变 量,且 没有 一个 指 向 的 内存 空 间,这 是 我 们 常 犯 错 的地 方 。 解决 的 方 法是 要 先 分配 内 存给 t 指 针 变 量。 如 下 所示 : t =(char *) malloc(80*sizeof(char));. 接下来,我们参照字符串复制的原理,自行编写一个用户自定义函数,以 模 拟 strcpy 函 数 的 做法 , 如 范 例 myStringCopy 所 示 。 范 例 myStringCopy /* myStringCopy.c */ #include <stdio.h> #include <string.h> void myStringCopy(char *, char *); int main() { int length=0; char str2[80]; char *str1 = "Apple iPod"; printf("调用字符串库函数: strcpy()...\n"); strcpy(str2, str1); printf("str2=%s\n\n", str2); /* using my method */ myStringCopy(str2, str1); printf("调用用户自定义函数: myStringCopy()...\n"); printf("str2=%s\n", str2); system("PAUSE"); return 0; } void myStringCopy(char *dest, char *source) { while((*dest = *source) != '\0') { source++; dest++; } }. 输出结果 调用字符串库函数 : strcpy()... Str2=Apple iPod. 85.

(8) 86 86. Part 1 C 程序语言篇 调用用户自定义函数 : myStringCopy()... Str2=Apple iPod. 在 myStringCopy() 函 数 中 , 利 用 while 循 环 , 将 *source 的 内 容 指 定 给 *dest, 若 字 符 不 是 '\0', 则 将 source 和 dest 的 指 针 移 到 下 一 个 地 址 , 继 续 执 行 复 制 的 动 作。 若 只 需 复 制 n 个 字 符 时 , 则 调 用 strncpy 库 函 数, 其 语 法 如下 : strncpy(str1, str2, n);. 将 str2 的 前 n 个 字 符 复 制 到 str1。 请 参 阅 范 例 myStringCopy_n。 范 例 myStringCopy_n /* myStringCopy_n.c */ #include <stdio.h> #include <string.h> void myStringCopy_n(char *, char *, int n); int main() { int length=0; char str2[80]; char *str1 = "Apple iPod"; char str3[80]; printf("调用字符串库函数: strncpy()...\n"); strncpy(str2, str1, 5); str2[5]='\0'; printf("str2=%s\n\n", str2); /* using my method */ myStringCopy_n(str3, str1, 5); str3[5]='\0'; printf("调用用户自定义函数: myStringCopy_n()...\n"); printf("str3=%s\n", str3); system("PAUSE"); return 0; } void myStringCopy_n(char *dest, char *source, int n) { int i=1; while( (i <= n) && (*dest = *source) != '\0' ) { source++; dest++; i++; } }. 输出结果 调用字符串库函数 : strncpy()... Str2=Apple 调用用户自定义函数 : myStringCopy_n()... Str3=Apple. myStringCopy_n() 函 数 大 致 上 与 myStringCopy() 函 数 相 同 , 但 由 于 它 只 复 制 字 符 串 前 n 个 字 符,所以 多 了 i 变 量,用 以 判断 它 是 否 小 于 n。接 下 来,讨论.

(9) Chapter 5 指针与字符串. 字 符 串 的 连接 。. 字 符串 的 连 接. 5-2-3. 字 符 串 的 连接 的 库 函数 为 strcat, 其 语 法 如 下: strcat(str1, str2);. 表 示 将 str2 字 符 串 连 接 到 str1 字 符 串 的 尾端 。注 意 , str1 必 须 要 分 配 足 够 的 空 间 。 请参 阅 范 例 stringConcate。 范 例 stringConcate /* stringConcate.c */ #include <stdio.h> #include <string.h> #include <stdlib.h> void stringConcate(char *, char *); int main() { char str2[80]="I want to buy a "; char *str1 = "Apple iPod"; char str3[80]="I want to buy a "; printf("使用库函数 strcat()....\n"); strcat(str2, str1); printf("str2 = %s\n\n", str2); /* using my method */ stringConcate(str3, str1); printf("调用用户自定义函数 stringConcate()....\n"); printf("str3 = %s\n", str3); system("PAUSE"); return 0; } void stringConcate(char *dest, char *source) { while(*dest != '\0') dest++; while((*dest=*source) != '\0') { source++; dest++; } }. 输出结果 使用库函数 strcat().... Str2= I want to buy a Apple iPod 调用用户自定义函数 stringConcate().... Str3= I want to buy a Apple iPod. 在 stringConcate() 函 数 中,利用 循 环 先追 踪 dest 字 符 串 的 结束 点,接下 来 , 将 source 指针指向的字符(*source)指定给(*dest) ,直到*source 是空字符为止。 若 只 要 连 接 n 个 字 符 时 , 则可 调 用 strncat 库 函 数 , 其 语 法如 下 :. 87.

(10) 88 88. Part 1 C 程序语言篇 strncat(str1, str2, n);. 意 思 是 将 str2 的 前 n 个 字 符 连 接 到 str1。 请 参 阅范 例 stringConcate_n。 范 例 stringConcate_n /* stringConcate_n.c */ #include <stdio.h> #include <string.h> #include <stdlib.h> void stringConcate_n(char *, char *, int); int main() { char str2[80]="I want to buy a "; char *str1 = "Apple iPod"; char str3[80]="I want to buy a "; printf("使用库函数 strncat()....\n"); strncat(str2, str1, 5); printf("str2 = %s\n\n", str2); /* using my method */ stringConcate_n(str3, str1, 5); printf("调用用户自定义函数 stringConcate_n()....\n"); printf("str3 = %s\n", str3); system("PAUSE"); return 0; } void stringConcate_n(char *dest, char *source, int n) { int i=1; while(*dest != '\0') dest++; while( i<=n && (*dest=*source) != '\0' ) { source++; dest++; i++; } }. 输出结果 使用库函数 strncat().... Str2= I want to buy a Apple 调用用户自定义函数 stringConcate_n().... str3= I want to buy a Apple. stringConcate_n() 函 数 大 致上 和 stringConcate 函 数 相 同,只 是 多 了一 个 i 变 量 用 以 判 断是 否 大 于 n。. 5-2-4. 字 符串 的 比 较. 字符串的比较也可以说是最常用的。若要比较两个字符串是否相等,有些 人 可 能 会 这样 编 写 程序 , 如 范 例 stringCompare10 所 示 。.

(11) Chapter 5 指针与字符串. 范 例 stringCompare10 /* stringCompare10.c */ #include <stdio.h> #include <stdlib.h> int main() { char str1[] = "Honda Civic"; char str2[] = "Honda Civic"; printf("str1 指向的地址: %x\n", str1); printf("str2 指向的地址: %x\n", str2); if (str1 == str2) printf("str1 和 str2 是相等的\n"); else printf("str1 和 str2 是不相等的\n"); system("PAUSE"); return 0; }. 输出结果 str1 指向的地址: 22ff60 str1 指向的地址: 22ff50 str1 和 str2 是不相等的. 此 程 序 是 在比 较 st1 和 str2 的 地 址 是否 相 等 ,而 不 是 比 较内 容 是 否相 等 。 因 为 str1 和 str2 是 数 组 名 , 表示 的 是 数组 第 一个 元 素 的 地址 。 所 以此 范 例 并不 是 在 比 较 字符 串 的 内容 。 若 改 用 指 针变 量 的 话, 则 情 况又 不 一 样了 , 请参 阅 范 例 stringCompare20。 范 例 stringCompare20 /* stringCompare20.c */ #include <stdio.h> #include <stdlib.h> int main() { char *str1 = "Honda Civic"; char *str2 = "Honda Civic"; char *str3 = "Honda Accord"; printf("str1 指向的地址: %x\n", str1); printf("str2 指向的地址: %x\n", str2); printf("str3 指向的地址: %x\n", str3); if (str1 == str2) printf("str1 和 str2 是相等的\n"); else printf("str1 和 str2 是不相等的\n"); if (str1 == str3) printf("str1 和 str3 是相等的\n"); else printf("str1 和 str3 是不相等的\n"); system("PAUSE"); return 0; }. 89.

(12) 90 90. Part 1 C 程序语言篇. 输出结果 str1 指向的地址: 4156dc str2 指向的地址: 4156dc str3 指向的地址: 4156e0 str1 和 str2 是相等的 str1 和 str3 是不相等的. 此 范 例 也 是 在 比 较 地 址 , 因 为 指 针 变 量 也 是 地 址 。 从 输 出 结 果 得 知 , str1 与 str2 的 地 址 是相 等 的,因为 str1 与 str2 指 针 变 量 都 指 向相 同 的 字符 串 "Honda Civic"。 而 str3 "Honda Accord"是 不 一 样 的 字符串 , 所 以 str3 指 向 的 地 址 和 str1 与 str2 不 一 样 。 也 可 以 利 用 malloc 函 数 先 分 配 内 存 , 再 指 定 一 个 字 符 串 给 它 , 如 范 例 stringCompare30 所 示 。 范 例 stringCompare30 /* stringCompare30.c */ #include <stdio.h> #include <stdlib.h> int main() { char str1 char str2 char str3. *str1 = (char *)malloc(20); = "Honda Civic"; *str2 = (char *)malloc(20); = "Honda Civic"; *str3 = (char *)malloc(20); = "Honda Accord";. printf("str1 指向的地址: %x\n", str1); printf("str2 指向的地址: %x\n", str2); printf("str3 指向的地址: %x\n", str3); if (str1 == str2) printf("str1 和 str2 是相等的\n"); else printf("str1 和 str2 是不相等的\n"); if (str1 == str3) printf("str1 和 str3 是相等的\n"); else printf("str1 和 str3 是不相等的\n"); system("PAUSE"); return 0; }. 一般我们不会采用前两种方式来比较两个字符串是否相等,这里的用意是 让 您 了 解 这样 的 比 较方 法 是 错的。当然 利 用 字符串 的 库 函 数 strcmp 来 比 较 两 个 字 符 串 是 否相 等 是 最正 统 也 是最 安 全 的 。 strcmp 函 数 的 语 法 如 下 : strcmp(str1, str2);. 此语句表示比较 str1 与 str2 这两个字符串是否相等。请参阅范例 stringCompare 所示。.

(13) Chapter 5 指针与字符串. 范 例 stringCompare /* stringCompare.c */ #include <stdio.h> #include <string.h> #include <stdlib.h> int stringCompare(char *, char *); int main() { char *str1 = "Honda Civic"; char *str2 = "Honda Accord"; int value; printf("str1: %s\n", str1); printf("str2: %s\n", str2); printf("\n 使用库函数 strcmp(str1, str2)....\n"); value=strcmp(str1, str2); switch(value) { case 0: printf("str1 与 str2 相等\n"); break; case 1: printf("str1 大于 str2\n"); break; case -1: printf("str1 小于 str2\n"); break; } /* using my method */ value=stringCompare(str1, str2); printf("\n 调用用户自定义函数 stringCompare(str1, str2)....\n"); if(value==0) printf("str1 与 str2 相等\n"); else if(value>0) printf("str1 大于 str2\n"); else printf("str1 小于 str2\n"); system("PAUSE"); return 0; } int stringCompare(char *x, char *y) { for( ; *x == *y; x++, y++) if(*x=='\0') return 0; return *x-*y; }. 输出结果 str1: Honda Civic str2: Honda Accord 使用库函数 strcmp(str1,str2).... str1 大于 str2 调用用户自定义函数 stringCompare(str1,str2).... str1 大于 str2. 91.

(14) 92 92. Part 1 C 程序语言篇. 在 stringCompare()函 数 中,比较 *x 和 *y 的 内 容是 否 相 等,假如 相 等,则 再 判 断 *x 是 否 为 空 字 符, 若 不 是, 则 将 *x 和 *y 的 内 容 相 减后 返 回 。以 流 程 图表 示 , 如 图 5-4 所 示 。 否. 是. *x 与*y 的内 容是否相等. 否. *x 是否为 空字符 是 回传(). *x 和*y 的内容 相减后返回. 图 5-4. 有时在比较两个字符串时,并不需要比较整个字符串,只要比较前面几个 字 符 即 可 ,如 范 例 stringCompare_n 所 示 。 范 例 stringCompare_n /* stringCompare_n.c */ #include <stdio.h> #include <string.h> int stringCompare_n(char *, char *, int); int main() { char *str1 = "Honda Civic"; char *str2 = "Honda Accord"; int value; printf("str1: %s\n", str1); printf("str2: %s\n", str2); printf("\nUsing strncmp(str1, str2, 5)....\n"); value=strncmp(str1, str2, 5); switch(value) { case 0: printf("str1 is equal to str2\n"); break; case 1: printf("str1 is greater than str2\n"); break; case -1: printf("str1 is less than str2\n"); break; } /* using my method */.

(15) Chapter 5 指针与字符串. value=stringCompare_n(str1, str2, 5); printf("\nUsing stringCompare_n(str1, str2, 5)....\n"); if(value==0) printf("str1 is equal to str2\n"); else if(value>0) printf("str1 is greater than str2\n"); else printf("str1 is less than str2\n"); system("PAUSE"); return 0; } int stringCompare_n(char *x, char *y, int n) { int i; for(i=1; (*x == *y) || i<=n; x++, y++) if(*x == '\0') return 0; return *x-*y; }. 输出结果 str1: Honda Civic str2: Honda Accord Using strncmp(str1, str2, 5).... str1 is equal to str2 Using stringCompare_n(str1, str2, 5).... str1 is equal to str2. 以上仅讨论有关字符串的长度、复制、连接与比较等四个主题,同时以库 函数运行,并编写用户自定义函数,以模拟这些库函数的用法,期望读者能从 这 些 主 题 中学 到 更 多有 关 字 符串 指 针 的 操 作 方式 , 这 也 是本 书 的 重点 之 一 。. 5-3. 调试题. 请 将 以 下 的程 序 加 以修 正 。 1. /* stringBugs10.c */ #include <stdio.h> #include <stdlib.h> int main() { char *str1 = "Learning pointer now!"; char str2[] = "Go ahead"; char str3[20]; char *str4; str3 = "I want to buy an iPod\n"; printf("c or C++: "); scanf("%s", str4); printf("\n%s\n", str1); printf("%s\n", str2); printf("%s\n", str3); printf("Learning %s now\n", str4);. 93.

(16) 94 94. Part 1 C 程序语言篇 system("PAUSE"); return 0; }. 2. /* stringCopyBugs.c */ #include <stdio.h> #include <string.h> #include <stdlib.h> int main() { char *s = "iPhone"; char *t; printf("Before strcpy(t, s)\n"); printf("s = %s\n", s); printf("t = %s\n", t); printf("After strcpy(t, s)\n"); strcpy(t, s); printf("s = %s\n", s); printf("t = %s\n", t); system("PAUSE"); return 0; }. 5-4. 程序实战. 1. strchr(str, 'd')函 数 是 寻 找 d 字 符 第一 次 在 字符 串 str 中 出 现 的 地 址 。试 编 写 模 拟 此 函数 的 程 序, 并 加 以测 试 。 2. stricmp(t, s)函 数 是 比 较 t, s 两 个 字 符 串 , 且忽略 大 小 写 的差 异 。 试编 写 模 拟 此 函 数的 程 序 ,并 加 以 测试 。.

(17)

參考文獻

相關文件

固定资本形成总额:指固定资产(包括新、旧及场所自产自用之固定资产)之购置减固定资产销售后之数值。固定资产

二、多元函数的概念 三、多元函数的极限

最终求得所有 4个基函数 (针对三次 Hermite插值). 代入 4个基函数

此行文字的特別意義,是讓 MATLAB 藉由 lookfor 指令 搜尋並顯示此函式用途。.. 語法:

sort 函式可將一組資料排序成遞增 (ascending order) 或 遞減順序 (descending order)。. 如果這組資料是一個行或列向量,整組資料會進行排序。

对于二元函数的自变量,我

上述定理, 即 Dini, Lipschitz, Dirichlet 判别法, 给出函数能展开成 Fourier 级数的充分条件... 下面罗列几个例子,

下面我们将用 这一点将一元函数的 Taylor 展开推广到多元函数.. 我们希望借助此给出多元函数