前言
字符串操作函数是用于操作字符串的。有的函数有新版和旧版,大同小异。字符串操作函数的头文件: string.h
一、字符串拷贝函数:
将字符串复制到一个数组里。
字符串拷贝:
char str [ 20] = { 0 }; 旧版:strcpy ( str, “hello word” ); 新版: strcpy_s (str, 20,“hello world”); / / 20用于保护赋值字符串不越界。
字符串拷贝n个:(将字符串前n个拷贝)
char str [20] = { 0 }; 旧版:strncpy ( str,“hello world”,3); / / 多个一个n,3 就是要拷贝前3个字符。不带 \0 新版:strncpy_s (str,20,“hello world”,3); / / 自带 \0
二、字符串拼接函数:
将一个字符串拼接在另一个字符串的尾部。
字符串拼接:
char str[20] = { "hello "}; 旧版:strcat ( str,“world”); 新版:strcat_s (str,20,“world”); / / 将world 接在hello的后面
字符串拼接n个:(将一个字符串前n个拼接在另一个字符串的尾部)
char str[20] = { "hello "}; 旧版:strncat (str,“world”,3); 新版:strncat_s ( str,20,“world”,3);
三、字符串比较函数:
从头到尾依次比较,直到第一个不同的字符,此时谁大谁就大,否则相等。(比较就是比较两者的ASCII码值)
字符串比较:
int a = strcmp ( “abc”, “abc” ); / / 一样大,返回 0 int b = strcmp ( “abr”, “abcde” ); / / 前大,返回 1 int c = strcmp ( “abcde”, “ar” ); / / 后大,返回 -1
字符串前 n 个比较:
int a = strncmp ( “abc”, “abc” ,1); / /1就是比较前1个字符 int b = strncmp ( “abr”, “abcde”,2 ); / / 2就是比较前2个字符 int c = strncmp ( “abcde”, “ar” ,2); / / 3就是比较前3个字符
四、字符串长度函数:
到 \0 终止计算长度,不算 \0。
size_t a = strlen ( “abcd”); / / 长度是 size_t b = strlen ( “abc\0def” ); / / 长度是3
类比 sizeof 计算字节大小:
size_t c = sizeof ( “abcd”); / / 5个字节,因为字符串最后有 \0 size_t d = sizeof ( “abc\0def” );/ / 8个字节
总结
注意:使用旧版需要加 #define _CRT_SECURE_NO_WARINGS
一般我们使用新版,不会有不必要的报错。
这部分内容比较多,但是以后会经常用到,大家好好理解一下。
下一节讲 结构体。