A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

字符串的输入输出
   输出:
      例:

   

        -
        结果:
      
       结论:%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 个回复

您需要登录后才可以回帖 登录 | 加入黑马