C-深入字符串

之前有一篇字符串留疑了,为什么字符串一定要用0结束,这次深入学习了字符串之后我又有了新的了解。

字符串的声明和数组的声明一样都是用char来声明的,这不是巧合,因为字符串其实就是数组,是文字的集合,数组的结束也是以0结束的。

字符串删除有两种情况,一是删除指定位置的字符,一是删除多个不相邻的特定字符。

删除指定位置的字符使用的是挪动方法,循环后把目标后面的所有字符移动n位即可。

删除多个不相邻的特定字符使用的是复制法,遇到特定字符时不复制并跳过。

字符串的增加和删除的操作一样,指定位置使用循环挪动法,增加使用复制法,避免多次挪动后面的字符,增加字符需要另外注意越界的问题,不能超过声明的字符串最大长度。

学习字符串的分割需要了解字符串的头和尾,字符串的头是首字母的地址,尾是0,所以当我们把字符串str的头往后位移n位时,可以获得从后往前数长度为len-n的新字符串str_new,而如果我们把字符串str的第n位赋值为0时,我们会得到从前往后数长度为n-1的新字符串str_new。

分割有分隔符的字符串就可以使用以上思路,循环字符串,判断字符是否为分隔符,如果是分隔符,就令分隔符等于0,并记录分隔符的地址作为下一个字符串的首地址。

字符串的深度操作其思路和操作数组的操作一样又不太一样,主要还是着重在对字符串的理解上,需要理解字符串头尾的概念,首地址的概念。

附:C-字符串  C-指针

发表评论

电子邮件地址不会被公开。 必填项已用*标注