【字符函数和字符串函数】
【字符函数和字符串函数】
- 字符分类函数
- 字符转换函数
- 函数的使用
- strcpy的使用
- strcat的实现
- strcmp的实现
- strncpy,strncat,strncmp
- strstr
- strtok的使用
- strerror
1.函数的使用
2.部分函数的模拟实现(工作原理)
字符分类函数
ag1.
#include<stdio.h>
#include<ctype.h>
int main()
{int r = isdigit('5');//返回的是非0值int p = isdigit('r');printf("%d %d\n", r,p);//非0值 0int m = islower('x');int n = islower('X');printf("%d %d", m,n);//非0值 0return 0;
}
练习1 将字符串中的小写字母转成大写,其他的不变
注a-97 A-65 b-98 B-66所以小写-32=大写
int main()
{char arr[] = "abCdEf1g2H3q#78";int i = 0;while (arr[i] != 0){if (islower(arr[i])){arr[i] -= 32;}printf("%c ", arr[i]);//A B C D E F 1 G 2 H 3 Q # 7 8i++;}return 0;
}
字符转换函数
所以练习1可以修改:
int main()
{char arr[] = "abCdEf1g2H3q#78";int i = 0;while (arr[i] != 0){if (islower(arr[i])){arr[i] = toupper(arr[i]);}printf("%c ", arr[i]);//A B C D E F 1 G 2 H 3 Q # 7 8i++;}return 0;
}
函数的使用
strcpy的使用
字符串的拷贝
strcpy(目标,源头)
ag.
#include<string.h>
int main()
{char arr1[] = "abcdef";char arr2[20] = { 0 };//arr1=arr2错误的因为数组名是地址strcpy(arr2, arr1);printf("%s\n", arr2);return 0;
}
strcat的实现
字符串追加stract(目标,源头)
可以自己给自己追加
ag.
#include<string.h>
int main()
{char arr1[20] = "abcdef";char arr2[20] = "wwwww";//arr1=arr2错误的因为数组名是地址strcat(arr1, arr2);printf("%s\n", arr1);//abcdefwwwwwreturn 0;
}
strcmp的实现
字符串的比较
下面的q大 这个是按照对应位置按照顺序来比较的
strcmp(1,2)
1>2则return>0的数
1=2则return=0的数
1<2则return<0的数
int m = strcmp("abcde", "abq");
printf("%d", m);//小于0
strncpy,strncat,strncmp
strncpy
strncat
strncmp
strstr
stringstring字符串字符串 在一个字符串中找另外一个字符串
如果找到了返回起始地址,没有找到返回NULL
#include<string.h>
int main()
{char arr1[] = "abcdefgh";char arr2[] = "cde";char* r = strstr(arr1, arr2);if (r == 0){printf("招不到");}else{printf("%s", r);//cdefgh}return 0;
}
strtok的使用
strerror
在C语言使用的时候,库函数的使用,调用如果失败 会记录错误码