七、字符串

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

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

转义字符 \n \t \0

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

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

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

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


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

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

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

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

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

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

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

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

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

posted @ 2019-10-27 09:39  insist钢  阅读(130)  评论(0编辑  收藏  举报