注意:
以下所学的字符串常用函数都在头文件<string.h>中,所以用这些函数之前要导入这个头文件
1.strcmp:
用法:int strcmp(字符串1,字符串2);
两个参数,一个int的返回值:
作用:
判断两个字符串是否相同,如果返回0代表两个字符串相同 (实际开发中的用法)
是比较两个字符串大小的!
问字符串1比字符串2大吗?大则返回正数,相等则返回0,小于则返回负
判断用户输入的账号是否等于某个账号
做登录!!
如果用户输入的是admin密码是88888,那么就提示登录成功,否则提示登录失败
2.strcat:
用法:strcat(字符数组1,字符串2);
作用:把字符串2加入到字符数组1的实际字符串后面
比如说前面一个字符数组保存的abc
字符串2传的是qwe
那么调用完后,字符数组最终保存的是abcqwe
注意:字符数组1必须保证长度足够长
3.strcpy:
用法:strcpy(字符数组1,字符串2);
作用:把字符串2复制到字符数组1,会覆盖掉字符数组1原来的内容
比如说前面一个字符数组保存的是abc
字符串2是qwe
那么调用完后字符数组1最终保存的是qwe
注意:字符数组1的长度必须保证足够长
应用场景在:给字符数组重新赋值的时候
4.strlen:
用法:unsigned long strlen(字符串);
作用:计算这个字符串的实际长度,不包括\0
注意:如果遇到中文或者中文符号,那么中文的实际位数要*3
strlen的原理是:一直遍历你这个字符串,统计次数,直到遇到\0就结束
例子:
#include <stdio.h>
#include <string.h>
int main(int argc, const char * argv[]) {
//strcmp
/*
char arr[10] = "abcdef";
char arr1[] = "zzz";
//数组名是首地址 所以在这里比较地址
if (arr == arr1) {
printf("啊啊啊啊\n");
}else{
printf("呵呵呵呵\n");
}
int res = strcmp(arr, arr1);
printf("%d\n",res);
*/
//strcat
/*
// char arr[4] = "abc";
// strcat(arr, "ddd");
// puts(arr); //打印不出来 出现了越界问题
char arr[20] = "abc";
strcat(arr, "dddd");
puts(arr);
*/
//strcpy
/*
char arr[20] = "abc";
strcpy(arr, "ddddd");
puts(arr);
*/
//strlen
char arr[] = "ajfdjfgjajdfjgj";
long len = strlen(arr);
printf("len=%ld\n",len);
char *p = "ajdfgdsagh";
long len1 = strlen(p);
printf("len1=%ld\n",len1);
char aaa[] = "哈哈哈哈哈,abcd";//数组长度为23
long len2 = strlen(aaa);
printf("len2=%ld\n",len2); //字符串实际长度为22
return 0;
}
|
|