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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 于鸿鹏 中级黑马   /  2015-11-3 08:13  /  1039 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 于鸿鹏 于 2015-11-3 15:19 编辑

一、puts函数作用:输出字符串的函数,将一个字符串(以’\0‘结束的字符序列)输出
一般形式:puts(字符数组的地址)
特点:1、用puts函数输出的字符串中可以包含转义字符, 2、在输出时将结束标志符'\0'转换成了'\n',即输出完之后直接换行3、可以是字符数组的首地址,也可以是字符数组元素的地址4、必须是字符数组5、不可以格式化输出
二、gets函数作用:从键盘上接收一个字符串的函数,将一个字符串输入到字符数组中,并得到一个函数值,该函数值就是字符数组的首地址
一般形式:getts(字符数组的地址)
特点:1、xcode下使用gets时会给出一个警告 2、不安全:当指定的数组长度小于输入的字符时不会提示,会存在越界问题  3、使用gets可以接收空格
三、puts函数、gets函数和putchar函数、getchar函数的区别;1、puts函数和gets函数用于字符串,二putchar 函数和getchar函数用于单个字符,
2、他们都可以输出转义字符,
3、putchar、getchar函数后面可以是字符常量、整型常量、字符变量或者整型变量,只要是值在字符的ASCII的范围之内就可以
4、getchar函数的返回值就是输入的字符,而gets函数返回值是字符串的地址
四、strcat函数—字符串连接函数一般形式:strcat(字符数组1,字符数组2)
作用:将字符串2连接到字符串1的后面,结果存放到字符串1当中,函数调用完后得到的是字符数组1的首地址
注意:字符数组1的长度要足够长,否则会出现溢出
五、strcpy和strncpy函数—字符串复制函数
一般形式:strcpy(字符数组1,字符数组2)
作用:将字符数组2复制到字符数组1中去
注意:1、字符数组1必须足够大,能够容纳被复制的字符数组2;  2、字符数组1必须写成数组名形式(如str),字符数组2 可以是字符数组名,也可以是一个字符串常量,例如 strcpy(str,”heima“);      3、复制时是将字符数组2中的字符串和最后的\0一起复制到字符数组的1中,从字符数组1的第一个元素开始覆盖,字符数组1被覆盖完后\0之后的元素是字符数组1中原有的字符
   4、不能将一个字符串常量或者字符数组直接给一个字符数组 如:str = ”HeiMa“;  str = str1; 这样的赋值是不合法的错误的
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. int main()
  5. {
  6.         //定义字符数组
  7.         char s1[] = "Hei Ma";
  8.     char s2[] = "Xun Lian Ying";
  9.     //复制字符串
  10.         strcpy (s1,s2);
  11.     //输出字符串
  12.     printf("复制之后为");
  13.         //输出字符数组1
  14.     puts(s1);
  15.     //输出字符数组2
  16.     puts(s2);
  17.     system("pause");
  18.         return 0;
  19. }
复制代码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{     //定义字符数组
        char s1[] = "Hei Ma";
    //char s2[] = "Xun Lian Ying";
    //复制字符串
        strcpy (s1,"Hei Ma Xun Lian Ying");
    //输出字符串
    printf("复制之后为");
        //输出字符数组1
    puts(s1);
    //输出字符数组2
    //puts(s2);
     system("pause");
        return 0;}


strncpy函数:作用是将字符数组2中的前面n个字符复制到字符数组1中去,复制的字符个数n不应该大于字符数组1中原有的字符个数(不包括\0)
一般形式:strncpy(字符数组1,字符数组2,n);
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. int main()
  5. {
  6.         //定义字符数组
  7.         char s1[] = "Hei Ma";
  8.     char s2[] = "Xun Lian Ying";
  9.     //复制字符串
  10.         strncpy (s1,s2,2);
  11.     //输出字符串
  12.     printf("复制之后为");
  13.         //输出字符数组1
  14.     puts(s1);
  15.     //输出字符数组2
  16.     puts(s2);
  17.         system("pause");
  18.         return 0;
  19. }
复制代码

六、strcmp函数—字符串比较函数
作用:将字符串1和字符串2的自左向右逐个字符按ASCII码值得大小相比较,直到出现不同的字符或遇到'\0'位止
特点:1、如全部字符相同,则认为两个字符串相等
2、若出现不相同的字符,则以第1对不同的字符的比较结果为准
如果字符串1 = 字符串2,则函数值为0
如果字符串1 > 字符串2,则函数值为一个正整数
如果字符串1 < 字符串2,则函数值为一个负整数
3、如果参加比较的两个字符串都由英文字母组成,则在英文字典中位置在后面的为大
七、strlwr函数—转换为小写的函数
八、strupr函数—转换为大写的函数
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. int main()
  5. {
  6.         //定义字符数组
  7.         char s1[] = "HEI MA";
  8.     char s2[] = "hei ma ";
  9.     //复制字符串
  10.         strlwr (s1);
  11.     strupr(s2);
  12.     //输出字符串
  13.     //printf(" 比较结果为:%d\n",s1);
  14.         //输出字符数组1
  15.     puts(s1);
  16.     //输出字符数组2
  17.     puts(s2);
  18.         system("pause");
  19.         return 0;
  20. }
复制代码









5 个回复

倒序浏览
代码怎么回变成 这样?
回复 使用道具 举报
这个原因是代码是直接复制是上去的  ,总结的还好
回复 使用道具 举报
恩 学习了以后就不会出现这种情况 了
回复 使用道具 举报
支持一下啊!
回复 使用道具 举报

谢谢  感谢支持
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马