1. strlen()
strlen 函数可以得到字符数组中第一个 \0 前的字符的个数,其格式如下:
strlen(字符数组)
#include <stdio.h>
#include <string.h>
int main() {
char str[10];
gets(str);
int len = strlen(str);
printf("%d\n", len);
return 0;
}
输入字符串:
memeda
输出结果:
6
2. strcmp()
strcmp 函数返回两个字符串大小的比较结果,比较原则是按字典序,其格式如下:
strcmp(字符数组1,字符数组2)
所谓字典序就是字符串在字典中的顺序,因此如果有两个字符数组 str1 和 str2 ,且满足 str1[0 … k-1] == str2[0 … k-1]、str1[k] < str2[k],那么就说 str1 的字典序小于 str2。例如 “a” 的字典序小于 “b” 、 “aaaa” 的字典序小于 “aab” 。 strcmp 的返回结果如下:
①如果字符数组 1 < 字符数组 2 ,则返回一个负整数(不同编译器处理不同,不一定是 -1)。
②如果字符数组 1 == 字符数组 2 ,则返回 0 。
③如果字符数组 1 > 字符数组 2 ,则返回一个正整数(不同编译器处理不同,不一定是 +1)。
示例如下:
#include <stdio.h>
#include <string.h>
int main() {
char str1[50], str2[50];
gets(str1);
gets(str2);
int cmp = strcmp(str1, str2);
if(cmp < 0) printf("str1 < str2\n");
else if(cmp > 0) printf("str1 > str2\n");
else printf("str1 == str2\n");
return 0;
}
输入字符串:
Dear Mozart
Canon
输出结果:
str1 > str2
3. strcpy()
strcpy 函数可以把一个字符串复制给另一个字符串,其格式如下:
strcpy(字符数组 1, 字符数组 2)
把字符数组 2 复制给字符数组 1,这里的“复制”包括了结束符 \0。
示例如下:
#include <stdio.h>
#include <string.h>
int main() {
char str1[50], str2[50];
gets(str1);
gets(str2);
strcpy(str1, str2);
puts(str1);
return 0;
}
输入字符串:
Ineffabilis
Quo Vadis
输出结果:
Quo Vadis
4. strcat()
strcat()可以把一个字符串接到另一个字符串后面,其格式如下:
strcat(字符数组1, 字符数组2)
把字符数组 2 接到字符数组 1 后面,示例如下:
#include <stdio.h>
#include <string.h>
int main() {
char str1[50], str2[50];
gets(str1);
gets(str2);
strcat(str1, str2);
puts(str1);
return 0;
}
输入字符串:
ArkLight
Through the Fire and Flames
输出结果:
ArkLightThrough the Fire and Flames
参考资料:《算法笔记》