字符分类函数
函数解释
1. 字符分类函数是专⻔做字符分类的。
2. 如果字符符合函数分类要求,则返回真;不符合则返回假。
3. 使用字符分类函数时,需要引入<ctype.h>头文件。
4. 字符分类函数的库函数查询:<cctype> (ctype.h) - C++ Reference (cplusplus.com)
islower();//如果是小写则返回真 isupper();//如果是大写则返回真
函数示例
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <ctype.h> int main() { printf("%d", islower('a')); return 0; } //2,为真。
//实现把字符串中的小写字母改成大写字母 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <ctype.h> int main() { char arr[] = "I am A student"; int i = 0; while (arr[i] != '\0') { //if (arr[i] >= 'a' && arr[i] <= 'z') if(islower(arr[i])) { arr[i] -= 32; } printf("%c", arr[i]); i++; } return 0; }
字符转换函数
函数解释
1. C语⾔提供了2个字符转换函数。
2. 使用字符分类函数时,需要引入<ctype.h>头文件。
3. 字符分类函数的库函数查询:<cctype> (ctype.h) - C++ Reference (cplusplus.com)
1. tolower()//转化成小写 2. toupper()//转化成大写
函数示例
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <ctype.h> int main() { char arr[] = "I am A student"; int i = 0; while (arr[i] != '\0') { //if (arr[i] >= 'a' && arr[i] <= 'z') if (islower(arr[i])) { arr[i] = toupper(arr[i]); } printf("%c", arr[i]); i++; } return 0; }
strlen()函数
函数解释
1. 字符串以 '\0' 作为结束标志,strlen函数返回的是在字符串中 '\0' 前⾯出现的字符个数(不包含 '\0' )。
2. 函数里面的字符串必须要以 '\0' 结束,否则返回随机值。
3. 注意函数的返回值为 size_t,是无符号的( 易错 )。
4. strlen的使用需要包含头文件<string.h>.
函数示例
#include <stdio.h> #include <string.h> int main() { const char* str1 = "abcdef"; const char* str2 = "bbb"; if(strlen(str2)-strlen(str1)>0) { printf("str2>str1\n"); } else { printf("srt1>str2\n"); } return 0; } //结果是第一种。
strcpy()函数
函数解释
1. strcpy----string copy,字符串复制。
2. strcpy(arr1,arr2),先把arr1内容清空,再把arr2的内容拷贝到arr1中,返回arr1。
3. arr1必须能修改。
4. arr2必须以'\0'结束。
5. strcpy()函数的使用需要包含头文件<string.h>.
函数示例
strcpy(目标字符串,源字符串);
#include <stdio.h> #include <string.h> int main() { char arr2[] = { "hello bit" }; char arr1[15] = { 0 }; printf("%s", strcpy(arr1, arr2));//正确 arr1=arr2;//报错,相当于3=5 return 0; }
strcat()函数
函数解释
1. strcat--string contact,字符串拼接函数。
2. 两个字符串必须以 '\0' 结束。(与函数运行原理有关)
3. strcat()函数的使⽤需要包含头文件<string.h>.
4. strcat(arr1,arr2)函数把arr2加在arr1后面,然后得到的是最新的arr1。
5. arr1需要有足够的空间,并且可以改变。
函数示例
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> int main() { char arr1[20] = "hello "; char arr2[10] = "world"; printf(strcat(arr1, arr2)); return 0; } //输出 hello world
strcmp()函数
函数解释
1. strcmp--string compare,字符串或者数组之间的比较。
2. 字符串不能直接(==)进行比较,需要运用strcmp()函数。
3. strcmp(arr1,arr2);如果arr1>arr2,返回>0的值;如果arr1<arr2,返回<0的值;如果arr1=arr2,返回0。
函数示例
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> int main() { char arr1[20] = "abce"; char arr2[10] = "abcd"; printf("%d",strcmp(arr1, arr2)); return 0; }
限制长度的修正
strncpy
1. 拷贝num个字符从源字符串到目标空间。
2. 如果源字符串的长度小于num,则拷贝完源字符串之后,在目标的后边追加0,直到num个。
#include <stdio.h> #include <string.h> int main() { char arr1[] = { "hello bit" }; char arr2[15] = { "woshishei"}; printf( strncpy(arr2, arr1,3));//只针对双方前三个字符 return 0; }
strncat
#include <stdio.h> #include <string.h> int main() { char arr1[30] = { "hello bit" }; char arr2[15] = { "woshishei"}; printf( strncat(arr2, arr1,5)); return 0; }
strncmp
#include <stdio.h> #include <string.h> int main() { char arr1[30] = { "abce" }; char arr2[15] = { "abcd"}; printf("%d" ,strncmp(arr2, arr1, 3)); return 0; }
致谢
感谢您花时间阅读这篇文章!如果您对本文有任何疑问、建议或是想要分享您的看法,请不要犹豫,在评论区留下您的宝贵意见。每一次互动都是我前进的动力,您的支持是我最大的鼓励。期待与您的交流,让我们共同成长,探索技术世界的无限可能!