目录
4.复制----- strcpy、strcpy_s、strncpy、strncpy_s
5,拼接----strcat、strcat_s、strncat、strncat_s
9,键盘输入--conio.h中的getch()或getche()
1,字符串赋值
char zifu[]={'a','b','c'};
char zifu1[]={'abc'}----------俩种同样的方法,这种方法简单
printf("%s\n",zifu);-------%s表示字符串,这种方式打印出来,会发新有很多乱码的情况
-----------------
char zifu[]={'a','b','c','\0'};------在最后面设置一个\0,用来结束对字符的搜索
-----------------
2,字符串空间的区别
char str1[]="hello";
char str2[]="hello";--------这个hello储存的位置是堆栈区,每次的位置也是不一样的
char *p1="hello";
char *p2="hello";------------p1,p2是指针,他指向一个空间,在这里面这个hello表示的是常量,在常常数区,p1,p2指向的也就是用一个存有hello的地址
3,字符串计算长度
char str1[] ="Hello";
char *p1="Hello";
printf("%d\n", strlen(str1));--------strlen()计算字符串长度
printf("%d\n", strlen(p1)
)
4.复制----- strcpy、strcpy_s、strncpy、strncpy_s
char *p='123456';
char a[20];
strcpy(a,p);--------------将p指向的空间字符串复制到a的空间中
strcpy(a,'hello');------------------将hello复制到a中
strcpy_s(a,20,p);----------将p指向的内容复制到a中,并且a的存储范围是20
p指向的内容不能超过a的设置范围
-----------------------
char b[20]={'0'};
strncpy(a,'hello world',8);-------将hello world 中前八个字节复制到a中
strncpy_s(a,10,'hello world',8);10----设置a的存储空间为10,8为取前八个字节
5,拼接----strcat、strcat_s、strncat、strncat_s
char a[20]={'hello'};
char *p={'hi'};
strcat(a,p);------将hi拼接到hello后面----hello hi
strcat_s(a,20,p)------对20进行空间设置,保障安全
strncat(a,p,1);//只把p指向字符串的 1 个长度的字符串连接到a数组-----hello h
strncat_s(a,15,p,1);// 实参15 即保证 a 具有的保障性的空间大小
6,字符串比较---strcmp
功能:字符串比较函数,返回
1
代表 大于关系 ; 返回
0
代表等于关系;返回
-1
代表小于关系。
char a[2]={'a'};
char b[2]={'b'};
srccmp(a,b)------对a,b进行比较
7,字符串查找---strstr
char str1[]="abcdefg";
char *str2="b";
char *p ;
p = strstr(str1,str2);//在第一个字符串中找第二个字符串首次出现的指针并返回
printf("%c\n",*p );//输出p指向的字符
printf("%s\n", p );//输出从p开始的字符串
8,键盘输入字符串----getchar
c=getchar();//从键盘缓冲区读取一个输入的字符
printf("%c\n",c);
//对比scanf的用法区别
scanf("%c",&c);
printf("%c\n",c);
9,键盘输入--conio.h中的getch()或getche()
char c;
c=getch(); //不回显你输入的字符
printf("你输入了:%c\n",c);
c=getche();//回显你输入的字符
printf("你输入了:%c\n",c)
10,键盘输入字符串---gets、gets_s
char a[300]; gets(a);//<经典版>从键盘缓冲区读取一行字符放入到a数组 printf("%s\n",a); gets_s(a,10);//<安全版>从键盘缓冲区读取一行字符放入到a数组,10代表缓冲区的大小 超出提示错误 printf("%s\n",a); //对比scanf scanf("%s",a); printf("%s\n",a);