OC学习笔记之C语言字符串处理(非指针版)

字符串的输入输出
   输出:

      例:

    

        -
        结果:
       
       结论:%s-----------从给定的地址开始,一直输出字符,直到遇到"\0"就结束
   输入:
      例
      char str[10];
      scanf("%s",str);
     结论:%s----------从键盘上接收一个字符串,保存在以str为首地址的字符数组中。如果输入的字符串中有空格,则空格之后的
             内容不再接收。如果你输入了大于10个字符,就会产生越界问题。








字符串结束符的使用
    注意:
        char str[]={'z','x','c'}
        printf("%d",str);
        这样写是非常危险的,当程序打印完str[]之后,还会继续打印内存中的内容,有可能会死循环。所以在使用{}定义字符串内容
        的时候,必须要使用‘\0’作为结束符。char str[]={'z','x','c','\0'}这样写是OK的。char str[]=“abc”这样写也是没有问题的,这样写
        自动在字符串的后面加上'\0'。








字符串长度的计算方法
   1.使用字符串函数计算
      strlen(str);
   2.以'\0'作为结束条件进行判断
   例题:查找字符串中出现谋字符的第一个位置。
   #include<stdio.h>
   #include<string.h>


   int Found(char *p, char q)       //查找最先匹配函数
   {
    int i;


    for(i = 0; p[i] != '\0'; i++)//循环查找匹配q的第一个元素的下标
    {
    if(p[i] == q)           //判断如果找到了第一个匹配的元素,就返回结果,并跳出函数
       return i;
   }
 }


 int main()
 {
   char str[] = "abcfdtgfdfdsfdsfjsroetpkmvaupeiurewhz";
    char ch;
   int integer;
   
   scanf("%c",&ch);


    integer = Found(str,ch);     //调用最先匹配函数


   printf("%d\n",integer);


   return 0;
    }








字符数组和普通数组的区别
    (1)字符数组的每个元素都是char类型
    (2)scanf()和printf()函数有一种格式化字符串%s可以用来整体输入输出字符数组
    注:数组类型的含义------------数据类型指的是数组所包含元素的类型,而不是数组名的类型。数组名永远是一个
           指针,指向数组的第一个元素,即数组首地址。




字符串处理函数
    (1)字符串输出函数:puts----------包含在<stdio.h>
put()函数可以自动换行
put(str)函数中传递的参数可以为数组名,也可以为数组的元素的首地址 
不可以格式化输出put("%s",str)是错误的    
    (2)字符串输入函数:gets----------包含在<stdio.h>
char str[100];
          gets(str);
         这样写执行时,会报警-----is unsafe。原因是,可能存在越界
 可以输入空格(同scanf()相比)   
    (3)字符串链接函数:strcat----------包含在<string.h>
 strcat(a,b)将字符串b拼接在字符串a的后面
注意:a的字符串的空间要足够大,能够容下a+b
strcat()函数把a后面的'\0'给删除了
   (4)strcpy-------字符串拷贝函数
 strcpy(oldstr,newstr)-------将newstr覆盖掉oldstr,oldstr要足够大
   (5)strcmp-------字符串比较函数
 strcpy(oldstr,newstr)--------比较两个字符串的大小(比较原则--逐个比较两个字符串相同位置字符的ascii码值,从第一位不相同的开始,就能确定大小了)
函数的返回值。如果返回值为>0------------oldstr>newstr
                                          <0------------oldstr<newstr  
                                          =0------------oldstr=newstr 
返回值为收个不同元素的ascii码相减的值
   (6)strlen--------字符串长度计算函数



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值