赞
踩
目录
字符串函数、内存函数种类很多,在实际使用的时候,会使用这些函数就行,当然下面我会详细的介绍一些做题的可能使用到的函数,这些函数不必深究,会使用即可,弄清楚函数的功能、参数、返回值即可~当然有些函数这里我未介绍,因为在之前的博客中我已经介绍,感兴趣的老铁可以看看点击这里:
相信看完后,你一定有所收获,一起加油吧~~
strchr 函数是 C 语言标准库中的一个字符搜索函数,用于在字符串中查找指定字符的第一次出现的位置。以下是 strchr 函数的介绍:
定位字符串中出现的第一个字符,返回指向C字符串str中第一次出现的字符的指针。
char *strchr(const char *str, int character);
- str: 指向要搜索的字符串的指针。
- character: 需要查找的字符(以整数形式)。
string.h
下面简单使用一下这个函数吧~~
比如:
- #include<stdio.h>
- #include<string.h>
- //strchr函数
- int main()
- {
- char arr[] = "my name is lihua";
- char* ret = strchr(arr, 's');
- printf("%s\n", ret);
- return 0;
- }
输出结果:
s lihua
解析:在这个例子中,strchr函数被用来查找字符 's' 在字符串 "my name is lihua" 中的位置。如果找到了,它会打印出从该字符的位置开始之后的字符;如果没有找到,它会告知字符没有出现在字符串中。
该函数还能确定某个字符的位置
比如:
- int main()
- {
- char arr[] = "my name is lihua";
- char ch = 's';
- char* ret = strchr(arr, ch);
- if (ret)
- {
- printf("字符%c在字符串的位置是:%lld\n", ch, ret - arr);
- }
- else
- printf("字符%c不在字符串中\n", ch);
- return 0;
- }
输出结果
字符s在字符串的位置是:9
strchr函数的使用场景可以总结为以下几点:
1. 检查字符串中是否包含特定字符:通过调用strchr函数,可以判断一个字符串中是否存在某个特定的字符。如果存在,函数会返回该字符的位置;如果不存在,则返回NULL。
2. 查找特定字符在字符串中的位置:当需要知道某个字符在字符串中的确切位置时,可以使用strchr函数。这对于字符串处理和分析非常有用,比如在提取子字符串或进行其他字符串操作时。
3. 区分大小写的搜索:strchr函数对大小写敏感,这意味着它会区分字符'a'和'A'。这在需要精确匹配字符时特别重要。
4. 单字节字符查找:strchr函数主要用于查找单字节字符。如果需要查找多字节字符,应考虑使用wstrchr函数。
5. 简单的字符串解析:在解析简单格式的字符串时,strchr可以用来快速定位分隔符或其他关键字符,从而分割字符串或提取信息。
6. 参数验证:在处理用户输入或配置文件时,可以使用strchr来验证是否包含非法字符或确保某些特定字符的存在。
7. 实现自定义字符串函数:在开发特定于应用程序的字符串处理函数时,strchr可以作为基础构建块,帮助实现更复杂的字符串操作。
8. 循环或递归查找:虽然strchr只能找到第一次出现的字符,但可以通过循环或递归的方式使用strchr来查找所有匹配的字符。
9. 与其他字符串函数结合使用:strchr可以与strlen、strncpy等其他字符串函数结合使用,以实现更复杂的字符串处理任务。
(1)函数:Strchr
(2)功能:定位字符串中出现的第一个字符
(3)具体解释:返回指向C字符串str中第一次出现的字符的指针
(3)参数
1、C字符串
2、要定位的字符。它作为其int提升传递,但为了进行比较,它在内部被转换回char
(3)使用场景
1、 检查字符是否存在:判断某个特定字符是否出现在字符串中
2.、获取字符位置:获取某个特定字符在字符串中的位置
3、 字符串处理:在进行字符串分割、替换等操作时,定位特定字符
4.、 验证输入:验证用户输入或配置文件中是否包含特定字符
5. 、实现自定义函数:作为构建更复杂字符串处理函数的基础
strrchr函数用于查找一个字符在字符串中末次出现的位置。
以下是strrchr函数的介绍~
strrchr函数用于查找指定字符`c`在字符串str中最后一次出现的位置。如果找到了该字符,函数返回一个指向该字符的指针;如果没有找到,则返回NULL。
char *strrchr(const char *str, int c);
- str:需要搜索的字符串。
- c:需要查找的字符。
string.h
下面简单使用一下这个函数吧~~
比如:strrchr函数可以确定某个字符最后出现的位置~
- // strrchr
- #include<stdio.h>
- #include<string.h>
- int main()
- {
- char str[] = "This is a sample string";
- char* pch = strrchr(str, 'a');
- if (pch)
- printf("Last occurence of 'a' found at %zu \n", pch - str + 1);
- else
- printf("No find!\n");
- //%zu——格式化输出size_t类型数据的占位符
- return 0;
- }
输出结果
Last occurence of 'a' found at 12
解析:在上面的代码中,我们使用了strrchr函数来查找字符'a'在字符串`"This is a sample string"`中最后一次出现的位置,并输出其位置。如果字符在字符串中存在,将输出其位置;如果不存在,则输出未找到的消息。
当然,函数可以实现查找某个字符在字符串中最后出现的位置,并打印从这个字符开始后面的字符~
比如:
- int main()
- {
- char str[] = "This is a sample string";
- char* pch = strrchr(str, 'a');
- if (pch)
- printf("%s\n", pch);
- else
- printf("No find!\n");
- //%zu——格式化输出size_t类型数据的占位符
- return 0;
- }
输出结果
ample string
strrchr函数主要用于查找字符串中最后一次出现的指定字符,并返回指向该字符的指针。以下是一些典型的使用场景:
1. 解析文件路径:在处理文件路径时,可能需要找到最后一个目录分隔符(如'/')的位置,以分离文件名和路径。
2. 处理字符串:在处理字符串时,可能需要找到最后一个出现的特定字符,以便进行后续的字符串操作。
3. 数据提取:在从文本中提取信息时,可能需要找到最后一个出现的关键词或分隔符,以便确定数据的边界。
4. 编程竞赛:在参加编程竞赛时,strrchr可以用于解决需要查找特定字符位置的问题。
5. 系统开发:在系统开发中,strrchr可以用于解析命令行参数,找到最后一个出现的选项字符。
6. 网络编程:在处理URL或其他网络资源时,可能需要找到最后一个出现的'.'字符,以确定文件扩展名。
7. 内存管理:在内存管理中,strrchr可以用于找到最后一个出现的空白字符,以便确定内存分配的结束位置。
8. 用户输入验证:在验证用户输入时,strrchr可以用于检查是否包含非法字符。
9. 软件测试:在软件测试中,strrchr可以用于构造测试用例,模拟特定的输入情况。
10. 安全审计:在进行安全审计时,strrchr可以帮助识别潜在的安全风险,例如检查字符串中是否包含特定的敏感字符。
总的来说,strrchr函数在各种需要查找特定字符最后出现位置的场景中都非常有用,它提供了一种简洁高效的方式来完成这一任务。
(1)函数:Strrchr
(2)功能:定位字符串中最后出现的字符
(3)具体解释:返回指向C字符串str中最后出现的字符的指针
(4)参数
1、C字符串
2、要定位的字符。它作为其int提升传递,但在内部被转换回char
- %zu是C语言中用于格式化输出size_t类型数据的占位符。
- 在C语言中,size_t是一种无符号整数类型,用于表示对象的大小,它在不同的系统和编译器上可能有不同的底层类型,如unsigned int或unsigned long等。size_t类型主要用于与内存分配相关的函数(如malloc、calloc等)以及字符串处理函数(如strlen等)。
- 当使用printf函数或其他格式化输出函数来打印size_t类型的数据时,应使用%zu作为占位符,以确保正确输出该类型的值。
- 需要注意的是,使用%zu占位符需要C99或更高版本的C语言标准支持,因为%zu是在C99标准中引入的。在一些旧的编译器或环境中,可能需要使用其他方式来输出size_t类型的数据,比如通过转换为unsigned long类型再使用%lu占位符来输出。
strpbrk 函数用于在字符串中查找与另一字符串中的任何字符匹配的第一个字符。strpbrk 是一个功能强大的函数,适用于需要在字符串中查找特定字符集中的字符的场景。它可以帮助开发者快速定位到第一个匹配的字符,从而提高字符串处理的效率和准确性。以下是strpbrk 函数介绍
功能:定位字符串中的字符
char * strpbrk ( char * str1, const char * str2 );
- str1:要被检索的 C 字符串。
- str2:该字符串包含了要在 str1 中进行匹配的字符列表。
string.h
比如查找arr1中有无arr2的元素,有的话输出相应字符~
- //strpbrk
- //功能:在arr1中找与arr2元素匹配的元素地址
- int main()
- {
- char arr1[] = "my name is lihua";
- char arr2[] = "iam";
- char* ch = strpbrk(arr1,arr2);
- while (ch)
- {
- printf("%c ", *ch);
- ch = strpbrk(ch + 1, arr2);
- }
- return 0;
- }
输出结果
m a m i i a
当然该函数可以实现,查找某个字符的位置
- int main()
- {
- char *arr1 = "hello world";
- char *arr2 = "low";
- char* ch = strpbrk(arr1, arr2);
- if (ch)
- {
- printf("character '%c' found at passion %lld in the string\n", *ch, ch - arr1+1);
- }
- else
- {
- printf("No find\n");
- }
- return 0;
- }
输出结果
character 'l' found at passion 3 in the string
在这个例子中,strpbrk 函数被用来查找字符串 "my name is lihua"(str1)中是否存在 "iam"(str2)中的任意字符。如果找到了,它会打印出该字符的位置,如果没找到,会输出没有找到。
以下是strpbrk函数的一些使用场景
1. 比较两个字符串中的字符:检查两个字符串是否有相同的字符存在。
2. 查找特定字符集中的字符:在主字符串中查找是否存在某个字符集中的任意字符。
3. 实现自定义字符串处理:作为构建更复杂字符串处理功能的基础工具。
函数:Strpbrk
功能:定位字符串中的字符
具体解释:返回一个指针,指向str1中属于str2的任何字符第一次出现的位置,如果没有匹配,则返回空指针
参数
- 要扫描的C字符串
2、包含要匹配的字符的C字符串
strcspn函数用于计算字符串中从开头开始连续的字符数量,这些字符都不在另一个指定的字符串中。其介绍如下
功能:获取span直到字符串中的字符
size_t strcspn(const char *str1, const char *str2);
- str1:要搜索的字符串。
- str2:包含不应出现在 str1 中的字符集的字符串。
string.h
比如:查找arr2中的元素第一次匹配在arr1出现的位置~
- //strcspn
- int main()
- {
- char* arr1 = "abcd123@89";
- char* arr2 = "5201314@";
- int ret = (int)strcspn(arr1, arr2);
-
- printf("The first number in arr1 is at position %d.\n", ret + 1);
- return 0;
- }
输出结果
The first number in arr1 is at position 5.
比如:
- int main()
- {
- char* arr1 = "abcd123@89";
- char* arr2 = "5201314@";
- size_t ret = strcspn(arr1, arr2);
-
- printf("The first number in arr1 is at position %zu.\n", ret);
- return 0;
- }
输出结果
The first number in arr1 is at position 4.
在这个例子中,strcspn 函数将计算字符串 "Hello, World!" 开头连续有多少个字符不在 "aeiou" 中。由于 "H" 是第一个不属于 "aeiou" 的字符,所以输出将是 "The string 'Hello, World!' starts with 1 characters not in 'aeiou'."。
以下是strcspn函数的一些使用场景
1. 查找不同字符序列:确定两个字符串从头开始有多少个不同的字符。
2. 避免特定字符集:检查一个字符串的开头是否有特定字符集中的字符,并确定它们的连续长度。
3. 数据验证:验证用户输入是否符合特定的格式要求,例如不包含非法字符。
4. 字符串处理:在处理字符串时,可以用来分割或提取不包含某些字符集的部分。
函数:Strcspn
功能:获取span直到字符串中的字符
具体解释:扫描str1中第一次出现的str2中的任何字符,返回在第一次出现之前读取的str1的字符数
参数
1、要扫描的C字符串
2、包含要匹配的字符的C字符串
strspn函数用于计算一个字符串中从开头开始的连续字符数量,这些字符都包含在另一个指定的字符串中。 strspn函数的介绍如下
功能:获取字符串中字符集的跨度
size_t strspn(const char *str1, const char *str2);
- str1:要搜索的字符串。
- str2:包含应出现在str1中的字符集的字符串。
string.h
比如:查找arr1中的元素与arr2完成匹配的数目~
- //strspn
- int main()
- {
- char arr1[] = "abcd12389";
- char arr2[] = "abcd";//初始化数~
- //数字貌似不行~
- size_t ret = strspn(arr1, arr2);
-
- printf("The initial number has %zu digits.\n", ret);
- return 0;
- }
输出结果
The initial number has 4 digits.
还有一个样例,一起康康吧~~
- int main()
- {
- char arr1[] = "12378ab9";
- char arr2[] = "123456789";//初始化数~
- //数字实际可以
- size_t ret = strspn(arr1, arr2);
-
- printf("The initial number has %zu digits.\n", ret);
- return 0;
- }
输出结果
The initial number has 5 digits.
在这个例子中,`strspn` 函数将计算字符串 "Hello, World!" 开头连续有多少个字符在 "Helo, Wrd" 中。由于 "Hello, World!" 的前5个字符 "Hello," 都在 "Helo, Wrd" 中,所以输出将是 "The string 'Hello, World!' starts with 5 characters from 'Helo, Wrd'."。
以下是strspn函数的一些使用场景
1. 计算匹配字符数:确定两个字符串从第一个字符开始有多少个相同字符。
2. 验证字符串前缀:检查一个字符串的开头是否由特定的字符集组成。
3. 数据过滤:在处理字符串时,可以用来提取或过滤出符合特定字符集的部分。
函数:Strspn
功能:获取字符串中字符集的跨度
具体解释:返回str1的初始部分的长度,该部分仅由属于str2的字符组成
参数
1、要扫描的C字符串
2、包含要匹配的字符的C字符串
- - strspn 对大小写敏感,因此 'A' 和 'a' 会被视为不同的字符。
- - 如果 str1 为 NULL 或 str2为 NULL,则行为未定义。
- - strspn可以用作实现自定义字符串处理功能的基础,如字符串拆分或特定格式的字符串解析。
memchr 函数用于在一段内存区域中查找指定字符的第一个出现位置。以下是 memchr 函数的详细介绍
功能:在内存块中定位字符
void *memchr(const void *buf, int c, size_t n);
- buf:要搜索的内存区域的指针。
- c:要查找的特定字符(以整数形式)。
- n:要搜索的字节数。
string.h
比如:使用该函数定位某个字符的位置~
- //memchr
- int main()
- {
- char arr[] = "hello world";
- char* ptr = memchr(arr, 'o', strlen(arr));
- if(ptr)
- printf("'p' found at position %zu.\n", ptr - arr + 1);
- return 0;
- }
输出结果
'p' found at position 5.
解析:在这个例子中,memchr 函数被用来在字符串 "hello, World" 中查找字符 'o'。如果找到了,它会打印出该字符的位置;如果没有找到,它会告知字符未在内存区域中找到。
以下是memchr函数的一些使用场景
1. 查找特定字符:在一块内存区域内查找某个特定字符是否存在。
2. 字符串处理:由于字符串在 C 语言中以 `\0` 结尾,可以使用 memchr来查找字符串结束符。
3. 二进制数据操作:在处理二进制数据时,可以用 memchr检查是否包含特定的值或模式。
4. 安全检查:检查缓冲区是否包含不安全的字符,例如空字符或其他控制字符。
函数:Memchr
功能:在内存块中定位字符
具体解释:在ptr所指向的内存块的前num字节内搜索value的第一次出现(解释为unsigned char),并返回一个指向它的指针
参数
1、指向执行搜索的内存块的指针
2、待定位的值。该值作为int类型传递,但该函数使用该值的unsigned char转换执行逐字节搜索
3、要分析的字节数
Size_t是一个无符号整型
- - memchr可以用来查找任何类型的数据,包括非字符数据。
- - memchr对大小写敏感,因此 'A' 和 'a' 会被视为不同的字符。
- - memchr 可以搜索的不仅仅是字符数据,也可以是其他类型的数据,如整型、浮点型等。
- - 在使用 memchr 时,确保内存区域的大小 n 正确无误,以避免潜在的缓冲区溢出问题。
memcmp函数用于比较两个内存区域的内容是否相同。要使用memcmp函数,需要包含头文件<string.h>。memcmp是一个功能强大的内存比较函数,它不仅可以用于比较字符串,还可以用于比较任何类型的内存块。在使用时应确保传入正确的参数,以避免潜在的错误。以下是 memcmp函数的详细介绍,一起来学习吧该函数吧~
功能:比较两个内存块
int memcmp(const void *s1, const void *s2, size_t n);
s1和s2是指向要比较的内存区域的指针,n是要比较的字节数。
const void *s1和const void *s2表示输入的两个内存区域的指针,它们都应该是const类型的,以保证函数不会修改这些内存区域的内容。size_t n表示要比较的字节数,这是一个无符号整数类型。
比较范围:memcmp函数会比较指定内存区域的前n个字节,不会因为遇到空字符而停止比较,这与字符串比较函数strcmp不同。
string.h
- 如果两个内存区域的内容完全相同,则函数返回0。
- 如果不完全相同,则返回非零值,具体取决于第一个不相同的字节:
- 如果s1中的字节小于s2中的对应字节,则返回值小于0;
- 如果s1中的字节大于s2中的对应字节,则返回值大于0。
使用该函数比较两个字符串~(无类型限制)
- //memcmp
- int main()
- {
- char buffer1[] = "DWgaOtP12df0";
- char buffer2[] = "DWGAOTP12DF0";
-
-
- int n = memcmp(buffer1, buffer2, sizeof(buffer1));
-
- if (n > 0) printf("'%s' is greater than '%s'.\n", buffer1, buffer2);
- else if (n < 0) printf("'%s' is less than '%s'.\n", buffer1, buffer2);
- else printf("'%s' is the same as '%s'.\n", buffer1, buffer2);
-
- return 0;
- }
输出结果
'DWgaOtP12df0' is greater than 'DWGAOTP12DF0'.
memcmp函数通常用于比较两块内存区域的内容,例如在实现内存复制、缓存验证或数据校验等操作时非常有用。以下是memcmp函数的一些典型使用场景:
- - 数据校验:在数据传输或存储过程中,为了确保数据的完整性和正确性,可以使用memcmp来比较源数据和目标数据的内存块是否一致。这在文件传输、缓存验证等场景中非常常见的。
- - 内存内容比较:当需要比较两个内存区域的内容以确定它们是否相同时,memcmp可以提供精确的比较结果。这在实现一些内存操作算法时非常有用,例如在排序算法中比较内存块的大小关系。
- - 安全领域:在某些安全应用中,如病毒扫描或加密算法,memcmp可以帮助检测特定模式的出现,从而识别潜在的恶意代码或进行数据解密。
- - 性能优化:在性能敏感的应用中,如果可以通过比较内存块来避免不必要的数据处理,那么使用memcmp可以提高程序的效率。
总的来说,memcmp是一个非常实用的函数,它在各种需要比较内存内容的场合都有广泛的应用。
函数:Memcmp
功能:比较两个内存块
具体解释:将ptr1所指向的内存块的前num字节与ptr2所指向的前num字节进行比较,如果它们都匹配则返回0,如果不匹配则返回不同于0的值,表示哪个值更大
参数
1、指向内存块的指针
2、指向内存块的指针
3、要比较的字节数
学习了那么完了字符串函数,其中有strcpy函数,我们知道strcpy函数原型是:
char * strcpy ( char * destination, const char * source );
但思考一下:strcpy能把str_src的内容复制到str_dest,为什么还要char*类型的返回值呢?
解释:
strcpy函数返回char*类型的值主要是为了实现链式表达式,并且在某些情况下用于检查操作是否成功。具体来说:
1. 实现链式表达式:通过返回目标指针strDest,可以在一条语句中连续调用多个函数。例如,可以首先使用strcpy复制字符串,然后立即使用strlen来获取该字符串的长度,如int length = strlen(strcpy(strDest, "hello world"));。这样的链式调用可以提高代码的简洁性和可读性。
2. 内存重叠处理:如果源字符串和目标字符串有重叠部分,返回值可以用来确定操作是否成功。在strcpy的实现过程中,如果发现重叠,可以通过返回一个特定的值(比如源或目标字符串的起始地址)来表明复制操作已经完成。
3. 错误处理:返回strDest还可以作为一种简单的错误检测机制。如果strDest是NULL,则表示目标缓冲区无效,此时返回NULL可以作为错误标志。
4. 兼容性:与其他字符串操作函数保持一致性,如strcat、strncpy等,这些函数也返回char*类型的值,使得它们的行为和使用方式更加一致。
5. 便于赋值和进一步操作:返回strDest允许将其赋值给其他变量或用于后续的字符串操作,如拼接、比较等。
综上所述,strcpy函数返回char*类型的值不仅有助于提高编程效率,还能在某些情况下提供额外的功能和错误处理机制。
总结如下:
字符串就是零个或多个字符的序列,该序列以一个NUL字节结尾。字符串的长度就是它所包含的字符的数目。标准库提供了一些函数用于处理字符串,它们的原型位于头文件string.h中。
strlen函数用于计算一个字符串的长度,它的返回值是一个无符号整数,所以把它用于表达式时应该小心。strcpy函数把一个字符串从一个位置复制到另一个位置,而strcat函数把一个字符串的一份拷贝添加到另一个字符串的后面。这两个函数都假定它们的参数是有效的字符串,而且如果源字符串和目标字符串出现重叠,函数的结果是未定义的。strcmp对两个字符串进行词典序的比较。它的返回值提示第1个字符串是大于、小于还是等于第2个字符串。
长度受限的函数strncpy、strncat和strncmp 都类似它们对应的不受限制版本。区别在于这些函数还接受一个长度参数。在strncpy 中,长度指定了多少个字符将被写入到目标字符数组中。如果源字符串比指定长度更长,结果字符串将不会以NUL字节结尾。strncat函数的长度参数指定从源字符串复制过来的字符的最大数目,但它的结果始终以一个NUL字节结尾。strncmp函数的长度参数用于限定字符比较的数目。如果两个字符串在指定的数目里不存在区别,它们便被认为是相等的。
用于查找字符串的函数有好几个。strchr函数查找一个字符串中某个字符第1次出现的位置。strrchr 函数查找一个字符串中某个字符最后一次出现的位置。strpbrk函数是在一个字符串中查找一个指定字符集中任意字符第1次出现的位置。strstr函数是在一个字符串中查找另一个字符串第1次出现的位置。
标准库还提供了一些更加高级的字符串查找函数。strspn 函数计算一个字符串的起始部分匹配
一个指定字符集中任意字符的字符数量。strcspn 函数计算一个字符串的起始部分不匹配一个指定字符集中任意字符的字符数量。strtok函数把一个字符串分割成几个标记。每次当它调用时,都返回一个指向字符串中下一个标记位置的指针。这些标记由一个指定字符集的一个或多个字符分隔。strerror函数把一个错误代码作为它的参数。它返回一个指向字符串的指针,该字符串用于描述这个错误。
标准库还提供了各种用于测试和转换字符的函数。使用这些函数的程序比那些自己执行字符测试和转换的程序更具移植性。toupper 函数把一个小写字母字符转换为大写形式,tolower函数则执行相反的任务。iscntrl函数检查它的参数是不是一个控制字符,isspace函数测试它的参数是否为空白字符。isdigit 函数用于测试它的参数是否为一个十进制数字字符,isxdigit 函数则检查它的参数是否为一个十六进制数字字符。islower和isupper函数分别检查它们的参数是否为大写和小写字母。isalpha 函数检查它的参数是否为字母字符,isalnum 函数检查它的参数是否为字母或数字字符,ispunct函数检查它的参数是否为标点符号字符。最后,isgraph函数检查它的参数是否为图形字符,isprint函数检查它的参数是否为图形字符或空白字符。
memxxx函数提供了类似字符串函数的能力,但它们可以处理包括NUL 字节在内的任意字节。这些函数都接受一个长度参数。memcpy从源参数向目标参数复制由长度参数指定的字节数。memmove 函数执行相同的功能,但它能够正确处理源参数和目标参数出现重叠的情况。memcmp 函数比较两个序列的字节,memchr函数在一个字节序列中查找一个特定的值。最后,memset 函数把一序列字节初始化为一个特定的值。
警告的总结
1.应该在使用有符号数的表达式中使用strlen函数。
2.在表达式中混用有符号数和无符号数。
3.使用strcpy函数把一个长字符串复制到一个较短的数组中,导致溢出。
4.使用strcat函数把一个字符串添加到一个数组中,导致数组溢出。
5.把strcmp函数的返回值当作布尔值进行测试。
6.把strcmp函数的返回值与1和﹣1进行比较。
7.使用并非以NUL字节结尾的字符序列。
8.使用strncpy函数产生不以NUL字节结尾的字符串。
9.把strncpy函数和strxxx族函数混用。
10.忘了strtok函数将会修改它所处理的字符串。
11.strtok函数是不可再入的。
编程提示的总结
1.不要试图自己编写功能相同的函数来取代库函数。2.使用字符分类和转换函数可以提高函数的移植性。
制作不易一键三联吧~~
老铁们,看官们~~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。