C语言笔记8 字符串(翁恺)

字符串:

以(整数)0 结尾的一串字符,可以用'\0'代替。标志字符串的结束,但不是其的一部分,计算字符串长度不包括这个0。

以数组的形式存在,可以以数组or指针的形式访问。

不可以用运算符对字符串做运算,可以以数组的方式遍历。

字符串常量:“hello”,长度加1,两个相邻的字符串常量会自动合并。

字符串变量

char* s = “Hello, world!”;

s是一个指针,初始化为指向一个字符串常量,s是(const) char* s,其所在地址只读

如果需要修改字符串,应该用数组:

char s[ ] = "Hello, world!";

要构造一个字符串-> 数组

要处理一个字符串 -> 指针

字符串输入输出

字符串的赋值?详见字符串函数

 char string[8];

scanf("%s",string);     

//scanf读入一个单词(到空格、tab或者回车为之)

//但并不安全,只能读入7个字符,需要写成%7s,表示最多允许读入的字符数量,应该小于n-1

//如果超出有效数量,下一次scanf从多出去的这个开始

printf("%s",string);

常见错误:

只是定义了一个指针变量,可能指向了垃圾值

空字符串:

第一个有效,第二个放不下其他字符了

字符串数组

char a[] [10] 和 char *a[]    前者容易越界

单字符输入输出

putchar

 getchar

shell提供行编辑

字符串函数

#inlude <string.h>

strlen

区别于sizeof是数组指向的大小//strlen:5  sizeof:6

 strcmp

 每一个字符依次比较,不相等的时候,给出的是差值

 strcpy

前者是目的,后者是源

重叠

常用功能:复制一个字符串

🔺注意加一

strcat

 从\0开始(覆盖)

安全问题: strcpy和strcat 结尾加个n(最多可以拷贝n个,第三个的意义是只比较前n个字符)

 

 字符串搜索函数

 

1寻找字符,返回一个指针;

2从右边寻找;

寻找第二个:

存储某字符串以后的内容:

 得到某字符前面的内容:

//8    *p所指的是lle

//9     c存放l

//10    把*p的值变成'\0',所以此时s所指的字符串是"he"

//11    分配了一个和当前s一样大小的空间

//12    将这个新的s拷贝到t

(后面要恢复:让*p=c,写回原来的数组)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值