
c语言 - 字符串总结
发布日期:2021-05-04 14:57:09
浏览次数:16
分类:原创文章
本文共 1224 字,大约阅读时间需要 4 分钟。
(1) 字符串变量名就是首地址。
字符串在输入的时候不需要加上“&”符号,字符串本质就是地址。
注意:打印的时候,倘若是一个*p指向的字符串,打印不需要加解引用p,直接p就可以了。
#include <stdio.h>int main(){ void *p; char a[99]="字符串"; p=a;//由于a变量名就是这个字符串的地址,所以不需要加上”&“ printf("%s",p);//这里打印的时候p代表a的地址,*p代表a地址里面的东西,但是字符串实质上就是一个地址,*p是没有意义的,所以直接p来进行打印字符串}
*(2) 字符串的一些特点。
在对字符串赋值时可以
#include <stdio.h>int main(){ char a[128]="chen"; char c[128]={ "chen"};}
(3)在字符串的末尾都有一个默认的’\0‘,可以用这个来统计字符串的元素个数。
但是也可以自己用<string,h>里面的strlen函数,x=strlen(a)。
#include <stdio.h>int main(){ char a[128]="chen"; int count=0; for(int i=0;a[i]!='\0';i++){ count++; } printf("%d",count);//这里打印出来的是4.}
在字符串连接的时候一定要记住末尾的’\0‘要加上,不然pta过不去。
char *str_cat(char *s,char *t){ int x=strlen(s),y=strlen(t); for(int i=0;i<=y;i++){ //这里写了等于y,因为t的最后一个就是'\0'也给了s。 s[x+i]=t[i]; } return s;}
(4)字符串的特殊打印
#include <stdio.h>int main(){ char a[128]="chen"; printf("%s",&a[1]);//这里%s用的是a[1]的地址,然后打印的是hen。}
#include <stdio.h>int main(){ char a[128]="chen"; printf("%s",a[1]);//这样的话啥子也打印不出来,因为a[1]只是一个字符,应该用%c打印。}
(5)字符串初始化问题
#include <stdio.h>int main(){ char c[999]="12345"; c[0]='\0';//这里仅仅是把第一个变成了\0,后面的还是不变, printf("%s\n",c);//这里就打印空白 c[0]='1';//这里本来的/0变成了1,那么后面的就可以打印出来了 printf("%s\n",c);}
所以注意以后再使用同一个字符串作为中间变量时,要记得全部初始化。
发表评论
最新留言
感谢大佬
[***.8.128.20]2025年03月13日 04时35分31秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
线程的退出
2019-03-04
2-MySQL性能性能优化实战
2019-03-04
M - 简单字符串排序
2019-03-04
SQL case when写法
2019-03-04
Mybatis使用collection导致分页总数过多
2019-03-04
常用运放电路分析
2019-03-04
CUDA编成:从GPU的物理体系结构到逻辑结构
2019-03-04
安全工具大全(持续补充中)
2019-03-04
使用docker搭建redis-cluster集群
2019-03-04
Java多线程3种实现方式
2019-03-04
PyQt5按键创建的几种方法
2019-03-04
Maven学习笔记(二)-仓库
2019-03-04
CentOS7报: ping: unknown host www.baidu.com
2019-03-04
Maven学习笔记(五)-使用Nexus搭建Maven私服
2019-03-04
Ubuntu15安装Redis
2019-03-04
Maven手动安装dubbo到本地仓库
2019-03-04
centos7 elasticsearch5.2.2安装kibana5.2.2
2019-03-04
centos7 elasticsearch5.2.2安装x-pack
2019-03-04
(六)多进程实现TCP服务端
2019-03-04