C语言字符串的知识点

1字符串常量

这是无法修改的,如

char * p ="abcdef";

无法通过指针来修改字符串的值

*p='d';    /*wrong*/

2字符串常量可以用字符数组存储,字符数组是可以修改的

char arr[]="abcdef";

arr[1]='d';  /*这是合法的*/

3取下标方式

char * p ="abcdef";

char arr[]="abcdef";

char str =*p[2];

char str ="abcdef"[2];

char str = arr[2];

4 字符数组和字符指针

char arr[]="abcdef";//声明一个字符数组

char * p ="abcdef";//声明一个字符指针

正因为有了数组和指针之间的紧密关系,才使上面这两个声明 都可以用作字符串。任何期望传递字符数组或字符指针的函数都能够接收这两种声明 作为参数。

注意:需要注意,不能错误地认为上面这两种可以互换,两者之间有很大的差异

5 字符串常用函数

printf(“%s”,arr);//显示字符串

scanf(“%s”,arr);//读入字符串

strcpy字符串复制

strcpy(str2, "abcd");//把abcd拷贝到str2中;

strlen求字符串长度

len = strlen(strl);//str一定要用'\0'结尾

strcat 函数(字符串拼接)

strncat(str1, str2, sizeof(str1) - strlen(str1) - 1) ;//把str2拼接到str1后面

strcmp函数(字符串比较)

if (strcmp(str1, str2) < 0)    /* is str1 < str2? */

6字符串几种惯用法

1)模拟strlen搜索字符串结尾,s为字符串指针

size_t strlen(const char *s)
{
const char *p = s;

while (*s) s++;
return s - p;
}

2)模拟strcpy字符串复制

char *strcat(char *s1, const char *s2)
{
char *p = s1;

while (*p) p++;
while (*p++ = *s2++)
;
return s1;
}

7字符串数组

可以用字符串建立数组

char planets[][8] = {"Mercury", "Venus", "Earth",
"Mars", "Jupiter", "Saturn",
"Uranus", "Neptune", "Pluto"};
char *planets[] = {"Mercury", "Venus", "Earth",
"Mars", "Jupiter", "Saturn",
"Uranus", "Neptune", "Pluto"};

上面是planets 数组的另外一种写法,这次把它看成是指向字符串的指针的数组:

planets 的每一个元素都是指向以空字符结尾的字符串的指针。虽然必须为planets 数组中的指针分配空间,但是字符串中不再有任何浪费的字符。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值