七、字符串

字符串
一个字符串 "helloworld" 代码中用双引号括起来
"你好世界" 一个中文 算两个字符
字符数组 char str[128]; 存放字符串
一般赋值字符串的方式 char str[128]={"helo world"};

特殊之处 所有字符串 用''作为字符串结尾
存放字符串默认都会补上一个

转义字符

输入输出
printf %s 对于字符串的输出
scanf 输入完会在后面自动加上一个
scanf_s("%s",str,128);//后面加上一个大小 限制输入的长度

char arr[]="hello world"; //大小由内容撑开 最后有一位''所以数组大小为12
char mystr[20]="helloworld";//考虑字符串只考虑前面 后面当做无效内容

scanf("%s",str);//%s用数组名 不需要额外的加上取地址
gets(str);
//和scanf的区别 scanf遇到空格 都会结束输入
//gets只有遇到回车才会结束输入
gets_s(str,128);//vs2017以上的版本只能有gets_s

printf("%s",mystr);//输出一串内容 而不是一个字符串 所以用数组名


专门用于字符串的输入输出字符
gets和puts

求字符串长度 strlen() 求前面有效字符的个数(不算入字符串长度中)
int brr[40];
sizeof(brr) 求数组的大小 40*4=160
sizeof(brr)/sizeof(brr[0]); 数组里元素的个数 未必是字符的大小

字符串拷贝 把一个字符串拷贝到另外一个位置 string 字符串 copy 拷贝
strcpy(str,"hello") 后面的字符串拷贝到前面的字符数组当中
数组 h e l l o

字符串链接函数 strcat(str,"hello") 将后面的字符串链接到前面的字符串后面

字符串比较函数 strcmp compare 比较两个字符串是否一致
strcmp(字符串1,字符串2)==0 两个字符串一致

strcpy strcat 把一个字符串拷贝串联到另一个位置 考虑越界的问题
数组大小>字符串长度

只管前面有效字符的个数 后面无效字符不用管

strstr 判断子串 其中的字符串是一个字符串的子串 strstr(字符串,子串) 正确返回1 错误返回0

strchr 判断字符串中是否包含字符 strchr(字符串,字符)

原文地址:https://www.cnblogs.com/liugangjiayou/p/11746673.html