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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 一步步往上爬 中级黑马   /  2016-1-10 02:26  /  543 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

注意:
以下所学的字符串常用函数都在头文件<string.h>中,所以用这些函数之前要导入这个头文件


1.strcmp:
用法:int strcmp(字符串1,字符串2);

两个参数,一个int的返回值:

作用:
判断两个字符串是否相同,如果返回0代表两个字符串相同 (实际开发中的用法)

是比较两个字符串大小的!

问字符串1比字符串2大吗?大则返回正数,相等则返回0,小于则返回负


判断用户输入的账号是否等于某个账号
做登录!!
如果用户输入的是admin密码是88888,那么就提示登录成功,否则提示登录失败



2.strcat:
用法:strcat(字符数组1,字符串2);

作用:把字符串2加入到字符数组1的实际字符串后面

比如说前面一个字符数组保存的abc
字符串2传的是qwe
那么调用完后,字符数组最终保存的是abcqwe

注意:字符数组1必须保证长度足够长



3.strcpy:
用法:strcpy(字符数组1,字符串2);

作用:把字符串2复制到字符数组1,会覆盖掉字符数组1原来的内容

比如说前面一个字符数组保存的是abc
字符串2是qwe
那么调用完后字符数组1最终保存的是qwe

注意:字符数组1的长度必须保证足够长

应用场景在:给字符数组重新赋值的时候


4.strlen:
用法:unsigned long  strlen(字符串);

作用:计算这个字符串的实际长度,不包括\0

注意:如果遇到中文或者中文符号,那么中文的实际位数要*3
strlen的原理是:一直遍历你这个字符串,统计次数,直到遇到\0就结束

例子:

#include <stdio.h>
#include <string.h>
int main(int argc, const char * argv[]) {
    //strcmp
    /*
    char arr[10] = "abcdef";
    char arr1[] = "zzz";
    //数组名是首地址 所以在这里比较地址
    if (arr == arr1) {
        printf("啊啊啊啊\n");
    }else{
        printf("呵呵呵呵\n");
    }
   
    int res = strcmp(arr, arr1);
    printf("%d\n",res);
    */
    //strcat
    /*
//    char arr[4] = "abc";
//    strcat(arr, "ddd");
//    puts(arr);   //打印不出来 出现了越界问题
    char arr[20] = "abc";
    strcat(arr, "dddd");
    puts(arr);
     */
    //strcpy
    /*
    char arr[20] = "abc";
    strcpy(arr, "ddddd");
    puts(arr);
     */
    //strlen
    char arr[] = "ajfdjfgjajdfjgj";
    long len = strlen(arr);
    printf("len=%ld\n",len);
   
    char *p = "ajdfgdsagh";
    long len1 = strlen(p);
    printf("len1=%ld\n",len1);
   
    char aaa[] = "哈哈哈哈哈,abcd";//数组长度为23
  long len2 = strlen(aaa);
    printf("len2=%ld\n",len2); //字符串实际长度为22
    return 0;
}

0 个回复

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