c学习(7)--字符串

目录

1,字符串赋值

2,字符串空间的区别

3,字符串计算长度

4.复制----- strcpy、strcpy_s、strncpy、strncpy_s

 5,拼接----strcat、strcat_s、strncat、strncat_s

6,字符串比较---strcmp

7,字符串查找---strstr

8,键盘输入字符串----getchar

9,键盘输入--conio.h中的getch()或getche()

10,键盘输入字符串---gets、gets_s


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.复制----- strcpystrcpy_sstrncpystrncpy_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,拼接----strcatstrcat_sstrncatstrncat_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,键盘输入字符串---getsgets_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);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值