导航

【C语言】基础(六)字符串

Posted on 2017-08-07 10:24  sucre_2  阅读(234)  评论(0编辑  收藏  举报

字符串



字符串是位于双引号中的字符序列
在内存中以'\0'结束 所占字节比实际多一个

可以把一个字符常量赋值给一个字符变量,不能把一个字符串常量赋值给一个字符变量
char ch='A';对
char ch1="A";错

C中没有字符串变量,可以使用字符数组存放
(整型变量可以存字符,浪费内存)

%s 打印直到碰到'\0'
%c 打印单个字符
初始化
char a[]={'a','b','c'}; 3个字节
=“abc”; 4个字节
a[10]="" 都为'\0'
#include<string.h> 存放了【字符串】操作函数

memset(void*,int,size); 清空字符串,字符串初始化函数
(要操作的字符数组名,要清理内存使用的数据,长度)

一般清理成'\0'

memset(aaa,'a',10);


sizeof() 求字符数组内存大小
strlen(const char*) 求字符串长度
必须存放完整的字符串
检查'\0' 没碰到'\0'就加1


字符串输入输出

连续输入用\n 防止被吃

scanf("%s",str);(不需要&) "%3s"读取3个 不能接收空格
输入后会自动补上'\0'

字符输入输出
char temp=getchar()
putchar()

字符串
gets(字符数组名) 输入存入数组
puts(字符数组名||字符串常量)

strcmp(const char*,const char*); 参数可以是字符串常量、也可以数字符数组
字符串比较原理
result == 0;相等
result >0 str1>str2
<0 str1<str2

strcpy 字符串赋值函数
1.字符数组(内存大小足够大)
2.常量字符串、字符数组
stcpy(str1,str2) 2拷给1 读取到'\0' ,包括'\0'拷给1


strncpy(char*,const char *,size_t)
strncpy(str1+x,str2+y,n)

strcat(char *,const char*) 字符串拼接函数
参数1不能为常量

strncat(str1,str2,n) 拼接str2前n个到str1


strncpy(s1+strlen(s1),s2,strlen(s2)) ==== strncat strcat