5. 使用字符串库函数
5.1 计算字符串长度,函数原型如下:size_t strlen(const char *s);
size_t 是一个无符号整型 unsigned int
该函数返回第一个空字符\0前面的字符个数。
#include <string.h>
// 获得字符串长度
void test_strlen(){
char str[] = "Hello World!";
size_t len = strlen(str);
printf("len=%d\n",len);
// 遇到\0空字符将返回
char *str1 = "Hello \0 World!";
size_t len1 = strlen(str1);
printf("len1=%d\n",len1);
}
5.2 字符串拷贝
函数原型
char * stpcpy(char *s1, const char *s2);
我们不能直接通过赋值的方式为字符数组赋值,(初始化除外)例如:
// 字符串拷贝
void test_strcpy(){
char str[10];
// str = "Hello"; // 不能直接赋值
char str1[] = "Hello"; // 初始化可以
char *str2;
str2 = "Hello";
char s[20];
// 返回值是指向s的字符指针
char *s1 = strcpy(s,"Hello");
puts(s);
puts(s1);
}
5.3 字符串连接
函数原型
char * strcat(char *restrict s1, const char *restrict s2);
// 字符串连接
void test_strcat(){
char s[20];
strcpy(s,"Hello");
strcat(s," World!");
puts(s);
}
5.4 字符串比较
函数原型
int strcmp(const char *s1, const char *s2);
返回值 -1 0 1
// 字符串比较
void test_strcmp(){
char s1[] = "abc";
//char s2[] = "abd"; // -1
//char s2[] = "abc"; // 0
char s2[] = "aac"; // 1
int r = strcmp(s1,s2);
printf("r=%d\n",r);
}
该博客教程视频地址:http://geek99.com/node/1012