C语言基础(八)字符串

在C语言中没有字符串类型,是用字符数组末尾加’/0’来表示字符串。
     (1)语法:
               第一种:char str[实际长度+1] = {‘a’,’b’,’c’,’\0’};
               第二种:char str[ ] = {‘a’,’b’,’c’,’\0’};
               第三种:char str[实际长度+1]=“abc”;
               第四种:char str[ ]=“abc”;
     (2)输入:scanf (“%s”,str);     gets(str);
              输出:printf(“%s”,str);     puts(str);
              注意:字符串用的格式化控制符是%s;
                         数组名是一个地址常量,所以用scanf进行输入的时候,只写数组名就可以了不需要加&;
                         准备输入的时候,数组一定要够长,否则可能会越界,出现未知错误
     (3)字符串的三种表示法:
               第一种:数组表示法:char str[ ]=“abc”;
               第二种:指针表示法:char *str=“abc”;
               第三种:常量表示法:”abc”;
     (4)数组表示法和指针表示法的区别:
               数组表示法可以改变里面的值,指针表示法不可以;
               数组表示法可以接受用户输入的值,指针表示法不可以;
               数组表示法不可以用==来判断2个字符串是否相等,指针表示法可以。
               以上区别的原理:在内存中有一个常量区,用来存放常量,常量区中的内容不允许改变;还有一个栈区,用来存放变量。当用户输入一个char str[ ] = “abc”;时,首先在常量区中开辟一块空间,用来存放“abc”,然后在栈区中开辟一个空间str,再将常量区中的“abc”复制一份到str中。当用户输入char *str = “abc”时,常量区的操作一样,但是栈区中开辟的空间str存放的是常量区中存放“abc”的内存地址。因此,使用指针表示法时,你实际尝试去改变的是常量区中的数值,所以不允许改变。当指针表示法用==判断是否相等的时候,(例:char *str = ‘abc' str == “abc”),其实两边的值都是内存地址,所以可以用==来判断。
     (5)字符串常用函数:
               strcmp:常用来表示2个字符串的大小    
                             用法:strcmp(str1,str2);    
                             原理:按照字符串的第一个字母进行比较,如果不等,返回差值;如果相等,则比较第二个字母,如果还相等则继续比较,如果全部相等,返回0
               strcpy:将第二个字符串的值复制到第一个字符串,如果第一个字符串有内容,则覆盖
                            用法:strcpy(str1,str2);
               strcat:将第二个字符串的内容接到第一个字符串后面
                            用法:strcat(str1,str2);
               strlen:计算字符串的长度
                            用法:strlen(str);

                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值