C语言 字符串与字符串函数

22.字符串

①字符串是位于双引号中的字符序列,在内存中以“\0"结束,所占字节比实际多一个

注意:可以把一个字符常量赋值给一个字符变量(char ch = 'a'),但不能把字符串常量赋给字符变量 char ch = 'a'

②用字符数组保存字符串:

    1) char str1[4] = {"abc"};   str[0]用来存'\0';

    2) char str2[4] = "abc";   //注意此处数组长度必须是>=4;

    3) char str3[] = "helloworld!";

③字符串的输出

    用%s输入字符串,从给定的地址开始,一直输出字符,直到遇到\0就停止了。

    printf("/s\n",str);   == printf("/s\n",&str[0];    // 都是取首地址

④字符串的输入

    %s接收键盘上输入的一个字符串,保存在以str为首地址的字符数组

    scanf("%s",str);

注意:1)如果输入的字符串有空格,则空格之后的字符无法接收保存。以%s的格式输入,scanf遇到空格,就结束了。

         2)输入的字符要小于数组的长度;

         3)要合理使用字符串结束符"\0";

请大家注意数组类型的含义:数据类型指的是数组所包含的元素的类型,而不是数组名的类型,数组名永远是一个指针,指向第一个元素的地址,即数组首地址。


23.字符串函数

    puts和gets 必须包含头文件 stdio.h

    strcat 需要包含string.h

①puts    输出字符串

    1)puts函数可以自动换行;

    2)也可是不是首地址,可以是元素的地址;

    3)必须是字符数组;

    4)不可以格式化输出

②gets    输入字符串

    1)使用gets会给出一个警告;

    2)可以接收空格;

    3)不安全:数组长度是100,但是你输入了120个也可以,但是越界;

③strcat    连接字符串

    1)格式:strcat(a,b);  // 把字符串b连接在字符串a之后

    2)oldStr的长度要足够大,只要能够保存下oldStr+newStr;

    3)newStr把oldStr的最后一个字符\0给覆盖了;

④strcpy    拷贝字符串

    1)strcpy(old,new); 把new覆盖old里;

    2)oldStr长度要足够长;

⑤strcmp    字符串的比较函数

    1)strcmp(str1,str2);  abc     def(大)   规则:比较字符的ascii码值,比较在字典中出现的顺序

    2)比较的过程:逐个去两个字符串的字符对应位相比较,从第一位不相同的位开始,就能确定字符串大小;

    3)strcmp(str1,str2);   函数有返回值  >0  :str1>str2     <0 :str1<str2   =0 :str1 = str2

⑤strlen    计算字符串长度,不包含\0



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值