您的位置:首页 > 编程语言 > C语言/C++

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

2015-07-18 22:13 330 查看
字符串的输入输出

   输出:
      例:

    


        -

        结果:

       

       结论:%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--------字符串长度计算函数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言