C语言字符串与字符串函数
或许是多年再见,各自安静生活数年,在某个人潮拥挤的街头,透过公车的玻璃突然看见你。。。
---- 网易云热评
一、字符数组
1、一个数组的元素是字符型,该数组是字符数组
2、赋值方式:
char c[ ]={'a','b','c'} //只有三个字符
c[0]='a',c[1]='b',c[2]='c'
3、处理已知长度的字符数组
二、字符串
1、C语言没有字符串类型,所以只能以字符数组,结束标识'\0'
2、赋值方式:
char c[10]={'a','b','c'} 会自动补0
char c[]="abc" //有四个字符
c[0]='a',c[1]='b',c[2]='c',c[3]='\0'
三、字符串函数
1、strlen:获取字符成员个数,不包括\0
sizeof:返回字符串大小
int main() {
int a[] = { 1,2,3,4,5 };
char b[] = "123";
printf("数组a的大小%d\n", sizeof(a));
printf("数组b的大小%d\n", sizeof(b));
printf("数组a的长度%d\n", sizeof(a)/sizeof(a[0]));
printf("数组b的长度%d\n", strlen(b));
system("pause");
return 0;
}
2、strcpy:拷贝字符串
char a[]="" ;
char b[] = "aiyoubucuo";
3、strcat:连接字符串
char a[]="aiyou" ;
char b[] = "bucuo";
4、strcmp:比较字符串
int main() {
char a[]="abc" ;
char b[] = "abd";
char c[] = "abc";
printf("对比结果为:%d\r\n", strcmp(a, b));
printf("对比结果为:%d\r\n", strcmp(b, a));
printf("对比结果为:%d\r\n", strcmp(a, c));
system("pause");
return 0;
}
5、strlwr:大写字母转小写
6、strupr:小写字母转大写
7、fgets,获取输入内容,可以获取空格及换行,scanf不能获取
int main() {
char a[100];
fgets(a, sizeof(a),stdin);
printf("您输入的是:%s", a);
system("pause");
return 0;
}
8、strstr(),strchr(),查询字符或字符串是否存在
int main() {
char a[]="aiou bucuo";
char *b=strchr(a,'a');
char* c = strstr(a, "aiou12");
if (c==NULL)
{
printf("查询失败!\n");
}
else
{
printf("查询成功!\n");
}
system("pause");
return 0;
}
9、strtok(),切割函数
int main() {
char a[]="aiou bucuo ooo";
char b[100];//拷贝数据,strtok会破坏原字符串
strcpy(b, a);
char* p;
p=strtok(b," ");
while (p!=NULL)
{
printf("切割后:%s\n", p);
p = strtok(NULL, " ");
}
system("pause");
return 0;
}
四、生成随机数
int main() {
//设置种子,srand里面的数据一样,生成的随机数也一样,时间一直在变,所以取时间
srand((unsigned int)time(NULL));
for (int i=1;i<10;i++)
{
//生成随机数
int num = rand();
printf("随机数%d:%d\n", i, num);
}
system("pause");
return 0;
}
运行结果: