注意:
以下所学的字符串常用函数都在头文件<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 str1[10] = "azc";
char str2[] = "zbc";
//数组名就是地址,所以这里比较的是地址是否相同
if(str1 == str2){
printf("相同\n");
}else{
printf("不相同\n");
}
int res = strcmp(str1, str2);
printf("%d\n",res);//-25
*/
//strcat
/*
// char str[4] = "abc";
//
// strcat(str, "qwe");//越界错误
//
// puts(str);//abcqwe
char str[] = "abc";//长度为4
strcat(str, "qwe");//
puts(str);//abcqwe
*/
//strcpy
/*
// char str[10] = "abc";
//
// strcpy(str, "qwe");
//
// puts(str);//qwe
// char *str = "abc";
//
// strcpy(str, "qwe");//这是错误的
//
// puts(str);//qwe
// char str[] = "abc";//4个长度
// strcpy(str, "qwerty");//运行报错,因为越界
// char str[5];
//
// strcpy(str,"abc"); //相当于给str赋值
//
// puts(str);
// char str[5];
//
// str = "abc";//不可以,因为数组名是一个地址常量
char str[5] = "abc";
//此时我想让str里面存的是zxv
// str[0] = 'z';
// str[1] = 'x';
// str[2] = 'v';
strcpy(str, "zxv");
puts(str);
*/
//strlen
/*
// char str1[4] = "abc";
// long len = strlen(str1);
//
// printf("len=%ld\n",len);//3
//
// char *str = "abc";
// long len = strlen(str);
//
// printf("len=%ld\n",len);//3
// long len = strlen("abc");
//
// printf("len=%ld\n",len);//3
// char str[10] = "abc\0zxc";
//
// long len = strlen(str);
//
// printf("len=%ld\n",len);//3
// char str[] = "帅哥";//长度为7
//
// long len = strlen(str);
//
// //中文在MAC里面占用3个字节
// //因为一个char类型只有1个字节,保存不了3个字节的汉字
// //char c = '哈'; //这个会报错
//
// printf("len=%ld\n",len);//6 在mac下面一个中文字占用3个字节
// char str[] = ",";
//
// printf("%lu\n",strlen(str));
// char str[] = "abc哈哈哈"; //数组长度那才是13个
//
// printf("%lu\n",strlen(str));//12
// char str[] = "班长不要爱我,haha"; //数组长度26
//
// printf("%lu\n",strlen(str));//25
*/
return 0;
} |
|