C语言中对字符和字符串的处理很是频繁,但是C语言本身是没有字符串类型的,字符串通常放在 常量字符串 中或者 字符数组中。
字符串常量 适用于那些对它不做修改的字符串函数.
size_t strlen ( const char * str );
int main(){
const char* str1 = "abcdef";
const char* str2 = "bbb";
if (strlen(str2) - strlen(str1) > 0){ //相减结果是-3,但是返回值为无符号,故大于0
printf("str2>str1\n");
}
else{
printf("srt1>str2\n");
}
return 0;
}
char* strcpy(char * destination, const char * source );
char * strcat ( char * destination, const char * source );
int strcmp ( const char * str1, const char * str2 );
char * strncpy ( char * destination, const char * source, size_t num );
char * strncat ( char * destination, const char * source, size_t num );
int strncmp ( const char * str1, const char * str2, size_t num );
char * strstr ( const char *str1, const char * str2);
char * strtok ( char * str, const char * sep );
char * strerror ( int errnum );
返回错误码,所对应的错误信息
库函数在执行的时候发生了错位,会将一个错误码存放在errno这个变量中,errno是C语言提供的一个全局的变量
int main() {
//C语言可以操作文件
//操作文件的步骤
//1.打开文件
//2.读/写
//3.关闭文件
FILE* pf = fopen("data.txt", "r");
if (pf == NULL) {
//printf("%s\n", strerror(errno));
perror("fopen");
return 1;
}
//读文件
//关闭文件
fclose(pf);
return 0;
}
函数 | 如果他的参数符合下列条件就返回真 |
iscntrl | 任何控制字符 |
isspace | 空白字符:空格‘ ’,换页‘\f’,换行'\n',回车‘\r’,制表符'\t'或者垂直制表符'\v' |
isdigit | 十进制数字 0~9 |
isxdigit | 十六进制数字,包括所有十进制数字,小写字母a~f,大写字母A~F |
islower | 小写字母a~z |
isupper | 大写字母A~Z |
isalpha | 字母a~z或A~Z |
isalnum | 字母或者数字,a~z,A~Z,0~9 |
ispunct | 标点符号,任何不属于数字或者字母的图形字符(可打印) |
isgraph | 任何图形字符 |
isprint | 任何可打印字符,包括图形字符和空白字符 |
字符转换:
int tolower ( int c );
int toupper ( int c );
#include
int main() {
char arr[20] = { 0 };
gets(arr);
char* p = arr;
while (*p)
{
if (isupper(*p))
*p = tolower(*p);
p++;
}
printf("%s\n", arr);
return 0;
}
void * memcpy ( void * destination, const void * source, size_t num );
//memcpy
int main() {
int arr1[] = { 1,2,3,4,5,6,7,8,9,0 };
int arr2[20] = { 0 };
//将arr1中的内容拷贝到arr2中
memcpy(arr2, arr1, 40);
for (int i = 0; i < 20; i++) {
printf("%d ", arr2[i]);
}
return 0;
}
void * memmove ( void * destination, const void * source, size_t num );
int memcmp ( const void * ptr1, const void * ptr2, size_t num );
比较从ptr1和ptr2指针开始的num个字节
返回值如下: